Ios MPMusicLayer控制器:将iPodMusicLayer和ApplicationMusicLayer结合使用,以防止继续播放下一曲目

Ios MPMusicLayer控制器:将iPodMusicLayer和ApplicationMusicLayer结合使用,以防止继续播放下一曲目,ios,mpmusicplayercontroller,Ios,Mpmusicplayercontroller,我有点奇怪的问题。我有一个音乐应用程序,它使用[MPMusicLayerController iPodMusicLayer]。一切正常,轨道更改和播放状态更改会触发通知 我有一个屏幕,用户需要查看一首歌曲,我不希望他继续观看队列中的下一首歌曲。由于没有指定一首曲目何时更改的方法(仅更改了),为了防止音乐播放器继续播放下一首曲目,我使用了一个新的[MPMusicLayerController应用程序MusicLayer],为它提供iPodMusicLayer当前播放的歌曲,一切正常。没有新曲目可继

我有点奇怪的问题。我有一个音乐应用程序,它使用
[MPMusicLayerController iPodMusicLayer]
。一切正常,轨道更改和播放状态更改会触发通知

我有一个屏幕,用户需要查看一首歌曲,我不希望他继续观看队列中的下一首歌曲。由于没有指定一首曲目何时更改的方法(仅更改了),为了防止音乐播放器继续播放下一首曲目,我使用了一个新的
[MPMusicLayerController应用程序MusicLayer]
,为它提供iPodMusicLayer当前播放的歌曲,一切正常。没有新曲目可继续播放,而且我没有触摸原始的
iPodMusicPlayer
队列,因此理论上,当我关闭此屏幕并再次使用
iPodMusicPlayer
时,一切都应该很好

但是,当用户在这个屏幕上完成并关闭它时,
iPodMusicPlayer
现在突然中断,通知不会被调用,当我将应用程序放到后台时,音乐停止播放,这让我相信
iPodMusicPlayer
现在实际上是
applicationMusicPlayer

好的,我的问题是:我需要一种方法来防止音乐播放器继续播放队列中的下一首曲目。如上所述,切换到带有一个曲目的ApplicationMusicLayer似乎会破坏一些东西。最好的解决方案是什么


编辑:因为这可能有点难以理解,我创建了一个小项目来显示问题:。播放音乐时打开应用程序,查看“播放”按钮是否正常工作。现在打开弹出窗口,再次关闭它,播放按钮就坏了。

我找到了解决问题的方法:将
重复模式设置为
MPMusicRepeatModeOne
,然后捕捉
MPMusicLayerController NowPlayingItemDidChangeNotification
通知。您可以停止播放,并且永远不会继续播放下一首曲目。完成第二个屏幕后,我将
repeatMode
重置为原始值。

我找到了解决问题的方法:将
repeatMode
设置为
MPMusicRepeatModeOne
,然后捕捉
MPMusicLayerControllerNowPlayingItemDidChangeNotification
通知。您可以停止播放,并且永远不会继续播放下一首曲目。完成第二个屏幕后,我将
repeatMode
重置为原始值