iOS10.3.x无法在MPMusicPlayer上为Apple Music曲目设置nowPlayingItem

时间:2017-04-14 15:45:36

标签: ios iphone mpmusicplayercontroller

我有一个已发布的应用程序,刚开始无法在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中是否会出现漏洞?

2 个答案:

答案 0 :(得分:2)

似乎在尝试设置nowPlayingItem之前过早停止音乐播放器会导致音乐播放器播放随机音轨。仍然不明白为什么,但如果音乐播放器没有停止,可以设置nowPlayingItem

答案 1 :(得分:1)

如果由于iOS 11中的类似问题而有人遇到此帖,我又回到了同样的问题。保持musicPlayer播放不起作用,而不是上面的解决方案。

从iOS11一般版本开始,尝试在播放(或不播放)MPMusicPlayerController上设置nowPlayingItem会产生意外结果。有时,它会使系统挂起最多5秒钟,然后可能会播放请求的曲目,或者有时它会挂起5秒并播放不同的曲目(设备上有一个,但不一定在队列中)或者有时是以前的播放曲目继续播放没有明显效果。哦,有时它会按预期立即播放请求的曲目;-)

如果有任何人有运气使这项工作一致,请发布。