2012-07-18 42 views
0

我对MPMusicPlayerControllerplaybackState属性有一些疑问。
iPhone:什么是MPMusicPlaybackStateInterrupted?它和MPMusicPlaybackStatePaused有什么区别

在文件中,MPMusicPlaybackStateInterruptedMPMusicPlaybackStatePaused定义如下:

MPMusicPlaybackStateInterrupted
音乐播放器已被中断,如呼入电话。

MPMusicPlaybackStatePaused
音乐播放器暂停。

我无法检查传入的电话,因为我现在没有iPhone。
但是只有几次我在用iPod touch播放音乐时获得MPMusicPlaybackStateInterrupted状态。

(我不知道为什么中断状态发生,除了只是播放音乐外没有来电和其他操作。

而在那段时间,MPMusicPlayerController刚刚暂停播放音乐。

问题1
是什么MPMusicPlaybackStateInterruptedMPMusicPlaybackStatePaused之间的区别?

问题2
什么时候MPMusicPlaybackStateInterrupted发生除了来电?

问题3
当我得到MPMusicPlaybackStateInterrupted我应该怎么办?
例如,当我得到MPMusicPlaybackStatePausedMPMusicPlaybackStateStopped时,我应该更改播放/暂停按钮。

回答

1

我使用iOS 5.1.1确认了以下信息。

问题1
是什么MPMusicPlaybackStateInterruptedMPMusicPlaybackStatePaused之间的区别?

MPMusicPlaybackStatePaused发生在播放器暂停时。
MPMusicPlaybackStateInterrupted发生在播放器被其他音频输出打断时,如来电或苹果时钟应用程序的计时器。

问题2
什么时候MPMusicPlaybackStateInterrupted发生除了来电?

MPMusicPlaybackStateInterrupted在Clock应用程序的计时器响起时发生。
-applicationWillResignActive:当定时器响铃时也会被调用。
但是MPMusicPlaybackStatePaused没有发生,播放音乐会在中断(定时器的闹钟)完成后自动恢复。

其他中断的例子有Siri/Voice Control(按住home键),远程控制耳机(如果使用applicationMusicPlayer),打入电话。
推送耳机遥控器的播放按钮不会使应用程序退出活动状态。中断从未完成。

MPMusicPlaybackStateInterrupted不会发生,并且当通知标题出现在屏幕顶部时,播放状态不会改变。
VoiceOver也不会产生中断。

问题3
当我得到MPMusicPlaybackStateInterrupted我应该怎么办?
例如,当我得到MPMusicPlaybackStatePausedMPMusicPlaybackStateStopped时,我应该更改播放/暂停按钮。

MPMusicPlaybackStateInterrupted发生时,您不必在回调MPMusicPlayerControllerPlaybackStateDidChangeNotification时做任何事情。
因为播放音乐会在中断后自动恢复。

编辑
我发现很少播放音乐不会自动恢复。(这意味着你不能依靠自动恢复。)

而在以下情况下播放音乐时不会自动恢复。

  • 当耳机的遥控器按钮被按下时。 (如果使用applicationMusicPlayer)

  • 当计时器响起时,您双击主页按钮,切换应用程序,停止计时器并切换回应用程序。

  • 当您在接听来电后打电话时切换回应用程序。