使用谓词后,MPMusicPlayerController不会自动跳到下一个项目

时间:2013-06-02 18:05:43

标签: ios objective-c mpmusicplayercontroller mpmediaquery

我正在开发一个音乐播放器应用程序。我有一个tableView,其中包含ipod库的歌曲名称。我的问题是,当我选择一个单元格时,它会播放一首特定的歌曲但是当该歌曲完成时它不会#39; t自动跳到下一个项目。 当我选择一个单元格时,这是我的代码:

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

我真的需要你的帮助。谢谢。

1 个答案:

答案 0 :(得分:3)

它不会跳到下一首歌曲,因为播放队列只有一个项目。启动时,将播放队列设置为整个歌曲查询。还使用MPMediaItem的{​​{1}}属性创建items个数组:

MPMediaQuery

MPMediaQuery *songsQuery = [MPMediaQuery songsQuery]; self.songs = songsQuery.items; [self.musicPlayer setQueueWithQuery:songsQuery]; 中,让音乐播放器使用tableView:didSelectRowAtIndexPath:' MPMusicPlayerController方法播放所选项目:

setNowPlayingItem:

以下示例项目演示了这一点: https://dl.dropboxusercontent.com/u/1990969/SongsPlayerTableView.zip