如何阻止应用程序终止用户播放MPMusicPlayerController?

我在申请中有以下情况:

我在我的应用程序中有一个音乐系统,我用MPMusicPlayerController播放音乐; 到现在为止,每件事情都很好。

我的问题:当用户开始在我的应用程序中播放音乐,并在一段时间后终止,音乐无法停止,因为我正在使用[MPMusicPlayerController systemMusicPlayer]对象。 我知道还有另一个选项是applicationMusicPlayer ,但是它在后台停止播放音乐,这不符合我的要求。

当应用程序被用户终止时,如何停止播放音乐?

我有一些代码,试图阻止它在applicationWillTerminate:但它只适用于某些情况下:

  1. 如果我按两次主页button并从多任务界面终止应用程序,那么应用程序可以停止音乐播放器。

  2. 如果按一下主页button,然后进入主屏幕,然后按两次主页button,终止应用程序,然后它不能停止我的音乐播放器。

我试图在applicationWillTerminate:放置一个断点applicationWillTerminate:但在第二个示例中(从上面),应用程序崩溃,并没有执行我的代码,不像第一种情况。

UPDAT

而且我知道,当我使用MPMusicPlayerController后台模式并不是必需的,因为它在原生音乐播放器中启动音乐。

任何帮助,将不胜感激。

不幸的是,根据您的要求,您唯一的select是使用您自己的应用程序AVAudioPlayer播放audio,并设置audio背景模式要求。

由于当您的应用程序被操作系统或用户终止时,没有办法接收通知,因此您无法在您的进程中停止系统或应用程序播放器。

注册NSUncaughtExceptionHandler不会捕获SIGKILL或SIGSTOP,所以你不能依靠系统音乐播放器。

这应该是一个问题,虽然它很容易在您的应用程序中设置audio播放。 如果您正在使用系统播放器,以便用户可以播放自己的音乐,则应使用选取器并访问其音乐库,以便他们可以select音乐。