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

我有一个发布的应用程序,刚刚开始有麻烦设置MPMusicPlayer for Apple音乐轨道上的nowPlayingItem。 此代码按照设备上iTunes曲目的预期方式工作,但如果媒体项集是Apple音乐曲目,用户的Apple音乐库中的随机曲目(而不是当前播放列表中)最终会播放。 我怀疑iOS10.3.x中的某些内容已经发生了变化,或者苹果电脑公司正在酝酿。 任何人都有我如何解决这个问题的想法?

基本代码是:

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责怪2017-04-14 09:43:14.761134-0400 MyFitnessDJ [720:241825] nowplaying item is 🙁 null)2017-04-14 09:43:14.819226-0400 MyFitnessDJ [720:241825] >>>>>>>现在播放不等于当前曲目,所以返回和划痕头

有没有人有任何想法,为什么现在的播放项目不会设置为正确的苹果音乐跟踪与iOS10.3.x或苹果音乐可能有burb?

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

如果有人因为iOS 11中的类似问题而遇到这个post,我会回到同样的问题。 保持musicPlayer播放不起作用,wayneh的上述解决scheme不是。

从iOS11常规版本开始,尝试在播放(或不播放)MPMusicPlayerController上设置PlaylItem会产生意外的结果。 有时,系统会挂起系统长达5秒钟,然后可能会播放所要求的音轨,有时会挂起5秒钟,并播放不同的音轨(一个在设备上,但不一定在队列中)播放曲目继续没有明显的来电效果。 噢,有时它会像预期的那样立即播放所需的曲目;-)

如果任何人有任何运气使这项工作连续,请张贴。