如何在用户终止应用程序时停止播放MPMusicPlayerController?

chi*_*hah 7 objective-c mpmusicplayercontroller ios

我的申请中有以下情况:

我的应用程序中有一个音乐系统,我曾经MPMusicPlayerController播放音乐; 到目前为止,每件事情都很好.

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

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

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

  1. 如果我按两次主页按钮并从多任务UI终止应用程序,则应用程序可以停止音乐播放器.

  2. 如果我按下主页按钮一次然后转到主屏幕,之后我按两次主页按钮并终止应用程序然后它无法停止我的音乐播放器.

我试图applicationWillTerminate:在第二个例子(从上面)中设置一个断点,应用程序崩溃并且没有执行我的代码,这与第一种情况不同.

UPDAT

我知道当我使用MPMusicPlayerController后台模式时不需要它,因为它在本机音乐播放器中启动音乐.

任何帮助,将不胜感激.

jar*_*ryd 3

不幸的是,根据您的要求,您唯一的选择是使用您自己的应用程序(例如 AVAudioPlayer)播放音频并设置音频背景模式要求。

由于当您的应用程序被操作系统或用户终止时,您无法收到通知,因此您无法绕过它,因此您将无法从您的进程中停止系统或应用程序播放器。

注册也NSUncaughtExceptionHandler不会捕获 SIGKILL 或 SIGSTOP,因此您不能依赖系统音乐播放器。

但这不应该是一个问题,因为在您的应用程序中设置音频播放很容易。如果您使用系统播放器以便用户可以播放自己的音乐,您应该使用选择器并访问他们的音乐库,以便他们可以选择音乐。