Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios MPMusicLayerController不';t在使用谓词后自动跳到下一项_Ios_Objective C_Mpmusicplayercontroller_Mpmediaquery - Fatal编程技术网

Ios MPMusicLayerController不';t在使用谓词后自动跳到下一项

Ios MPMusicLayerController不';t在使用谓词后自动跳到下一项,ios,objective-c,mpmusicplayercontroller,mpmediaquery,Ios,Objective C,Mpmusicplayercontroller,Mpmediaquery,我正在开发一个音乐播放器应用程序。我有一个包含ipod库歌曲名称的tableView。我的问题是,当我选择一个单元格时,它会播放一首特定的歌曲,但当歌曲完成后,它不会自动跳到下一项。 这是我选择单元格时的代码: MPMediaQuery *mq = [MPMediaQuery songsQuery]; MPMediaPropertyPredicate *songNamePredicate = [MPMediaPropertyPredicate predicateW

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

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];
}
下面是一个示例项目,演示了这一点:

非常感谢您的回答。我会试试看:)