2013-06-02 1 views
2

Я разрабатываю приложение для музыкального плеера. У меня есть таблицаView, которая содержит имена песен в библиотеке ipod. Моя проблема в том, что когда я выбираю ячейку, играет определенную песню, но когда эта песня завершена, она не переходит к следующему элементу автоматически. Это мой код, когда я выбрать ячейку:MPMusicPlayerController не переходит к следующему элементу автоматически после использования предиката

MPMediaQuery *mq = [MPMediaQuery songsQuery]; 
MPMediaPropertyPredicate *songNamePredicate = [MPMediaPropertyPredicate    
predicateWithValue:[songsTitle objectAtIndex:indexPath.row]  
forProperty:MPMediaItemPropertyTitle]; 
[mq addFilterPredicate:songNamePredicate]; 
[mp setQueueWithQuery:mq]; 
[mp play]; 

мне очень нужна ваша help.Thanks.

ответ

3

Он не переходит к следующей песне, потому что в очереди воспроизведения имеется только один элемент. При запуске установите очередь воспроизведения на весь запрос песни. Кроме того, создать массив MPMediaItem с помощью items свойства MPMediaQuery:

MPMediaQuery *songsQuery = [MPMediaQuery songsQuery]; 
self.songs = songsQuery.items; 
[self.musicPlayer setQueueWithQuery:songsQuery]; 

В tableView:didSelectRowAtIndexPath:, есть музыкальный плеер воспроизвести выбранный элемент с помощью MPMusicPlayerController «s setNowPlayingItem: метода:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    MPMediaItem *song = self.songs[indexPath.row]; 
    [self.musicPlayer setNowPlayingItem:song]; 
    [self.musicPlayer play]; 
} 

Вот пример проект, который демонстрирует это: https://dl.dropboxusercontent.com/u/1990969/SongsPlayerTableView.zip

+0

Большое спасибо за ответ. Я попробую :) – chandal

+0

Это сработало. Большое спасибо, я ценю вашу помощь! – chandal