我有一个已发布的应用程序,刚开始无法在MPMusicPlayer上为Apple Music曲目设置nowPlayingItem。此代码与设备上的iTunes曲目一样正常工作,但如果媒体项集是Apple Music曲目,则用户Apple Music库中的随机曲目(但不在当前播放队列中)最终会播放。我怀疑iOS10.3.x中的某些内容已经发生了变化,或者Apple Music刚刚出现问题。任何人都有我如何解决这个问题的想法?
基本代码是:
MPMusicPlayerController *musicPlayer;
[musicPlayer stop];
NSLog(@"*** trying to set nowplayingitem to %@", [UIAppDelegate.activeTrack.mediaitem valueForProperty:MPMediaItemPropertyTitle]);
musicPlayer.nowPlayingItem = UIAppDelegate.activeTrack.mediaitem ;
NSLog(@"nowplaying item is:%@", musicPlayer.nowPlayingItem.title);
[musicPlayer play];
if (![musicPlayer.nowPlayingItem.title isEqualToString:UIAppDelegate.activeTrack.name]){
NSLog(@">>>>>>> now playing does not equal current track so return and scratch head");
return;
}
2017-04-14 09:43:14.535079-0400 MyFitnessDJ [720:241825] ***试图将nowplayingitem设为Blame 2017-04-14 09:43:14.761134-0400 MyFitnessDJ [720:241825] nowplaying item是:(null) 2017-04-14 09:43:14.819226-0400 MyFitnessDJ [720:241825]>>>>>>>现在播放不等于当前曲目所以返回和刮头
有没有人知道为什么现在播放的项目不会设置为iOS10.3.x的正确Apple Music曲目,或者Apple Music中是否会出现漏洞?
答案 0 :(得分:2)
似乎在尝试设置nowPlayingItem
之前过早停止音乐播放器会导致音乐播放器播放随机音轨。仍然不明白为什么,但如果音乐播放器没有停止,可以设置nowPlayingItem
。
答案 1 :(得分:1)
如果由于iOS 11中的类似问题而有人遇到此帖,我又回到了同样的问题。保持musicPlayer播放不起作用,而不是上面的解决方案。
从iOS11一般版本开始,尝试在播放(或不播放)MPMusicPlayerController上设置nowPlayingItem会产生意外结果。有时,它会使系统挂起最多5秒钟,然后可能会播放请求的曲目,或者有时它会挂起5秒并播放不同的曲目(设备上有一个,但不一定在队列中)或者有时是以前的播放曲目继续播放没有明显效果。哦,有时它会按预期立即播放请求的曲目;-)
如果有任何人有运气使这项工作一致,请发布。