1

我有一个奇怪的问题。我有一个使用[MPMusicPlayerController iPodMusicPlayer]. 一切都很好,会触发曲目更改和播放状态更改的通知。

我有一个屏幕,用户需要在其中查看一首歌曲,我不希望他继续播放队列中的下一首歌曲。由于当曲目将更改(只有 DID 更改)时没有委托方法,为了防止音乐播放器继续播放下一首曲目,我使用了一个新的[MPMusicPlayerController applicationMusicPlayer],给它 iPodMusicPlayer 当前正在播放的歌曲,一切都很好。没有要继续播放的新曲目,而且我没有触及原始iPodMusicPlayer队列,所以理论上,当我关闭此屏幕并iPodMusicPlayer再次使用时,一切都应该很好。

但是,当用户在此屏幕上完成并关闭它时,iPodMusicPlayer现在突然坏了,没有调用通知,当我将应用程序置于后台时,音乐停止播放,让我相信iPodMusicPlayer现在实际上是applicationMusicPlayer.

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

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

4

1 回答 1

1

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

于 2012-06-12T11:58:21.187 回答