Ios MPMusicLayerController不';t在使用谓词后自动跳到下一项
我正在开发一个音乐播放器应用程序。我有一个包含ipod库歌曲名称的tableView。我的问题是,当我选择一个单元格时,它会播放一首特定的歌曲,但当歌曲完成后,它不会自动跳到下一项。 这是我选择单元格时的代码:Ios MPMusicLayerController不';t在使用谓词后自动跳到下一项,ios,objective-c,mpmusicplayercontroller,mpmediaquery,Ios,Objective C,Mpmusicplayercontroller,Mpmediaquery,我正在开发一个音乐播放器应用程序。我有一个包含ipod库歌曲名称的tableView。我的问题是,当我选择一个单元格时,它会播放一首特定的歌曲,但当歌曲完成后,它不会自动跳到下一项。 这是我选择单元格时的代码: MPMediaQuery *mq = [MPMediaQuery songsQuery]; MPMediaPropertyPredicate *songNamePredicate = [MPMediaPropertyPredicate predicateW
MPMediaQuery *mq = [MPMediaQuery songsQuery];
MPMediaPropertyPredicate *songNamePredicate = [MPMediaPropertyPredicate
predicateWithValue:[songsTitle objectAtIndex:indexPath.row]
forProperty:MPMediaItemPropertyTitle];
[mq addFilterPredicate:songNamePredicate];
[mp setQueueWithQuery:mq];
[mp play];
我真的需要你的帮助。谢谢。它不会跳到下一首歌,因为播放队列只有一个项目。启动时,将播放队列设置为“整个歌曲”查询。还可以使用
MPMediaQuery
的items
属性创建MPMediaItem
的数组:
MPMediaQuery *songsQuery = [MPMediaQuery songsQuery];
self.songs = songsQuery.items;
[self.musicPlayer setQueueWithQuery:songsQuery];
在tableView:didSelectRowAtIndexPath:
中,让音乐播放器使用MPMusicPlayerController
的setNowPlayingItem:
方法播放所选项目:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MPMediaItem *song = self.songs[indexPath.row];
[self.musicPlayer setNowPlayingItem:song];
[self.musicPlayer play];
}
下面是一个示例项目,演示了这一点:
非常感谢您的回答。我会试试看:)