2014-10-19 4 views
1

У меня есть экран плейлиста в моем приложении, где пользователи могут выбрать любую песню в плейлисте, и приложение начнет играть с этой песни.Как играть в MPMediaItemCollection из определенного индекса с помощью MPMusicPlayerController?

Я использую следующий код:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    MPMediaItem *selectedSong = [currentQueue.items objectAtIndex:indexPath.row]; 
    [audioCoordinator.musicController setNowPlayingItem: selectedSong]; 
    [audioCoordinator playAllSound]; 
} 

Это хорошо работает с плейлистами со всеми различными песнями, но так как этот плейлист позволяет дубликаты песен, здесь возникает проблема. Для этого плейлиста:

  1. Long Long Ago
  2. Моего декабря
  3. Long Long Ago

Когда пользователь нажимает на 3 песне, приложение будет играть 1-ю песню, так как они имеют идентичные имена, это не правильное поведение.

Как мы можем предоставить функцию setNowPlayingItem MPMusicPlayerController индекс, чтобы он мог начать играть оттуда?

ответ

1

Найдено решение:

в функции playAllSound:

while (self.musicController.indexOfNowPlayingItem != self.currentSongIndex) { 
    [self.musicController skipToNextItem]; 
} 

Здесь self.currentSongIndex имеет то же значение indexPath.row, что в строке tableViewController didSelectCell есть строка audioCoordinator.currentSongIndex = indexPath.row.

0

Видно, что selectedSong базы на indexPath.row, бревенчатый indexPath.row вы проверить playAllSound я думаю, что это изгоняются б игра

+0

Извините, я не понимаю, что вы пытаетесь сказать, но ваш «журнал indexPath.row и проверка для playAllSound» вдохновил меня, и я нашел решение, поэтому спасибо. –

+0

Я хочу сказать, что мы выбираем правильную песню со ссылкой на ячейку, но вы используете playAllSound, которая, на мой взгляд, shud b playSound, которая воспроизводит только одну песню. – ZAZ

+0

Извините за путаницу, playAllSound - это функция, которая играет одну но он называется «AllSong», потому что он не только воспроизводит песни, но и воспроизводит что-то другое одновременно. –