1

MPMusicPlayerController我对的playbackState属性有一些疑问。

在文档中,MPMusicPlaybackStateInterrupted定义MPMusicPlaybackStatePaused如下:

MPMusicPlaybackStateInterrupted
音乐播放器已被中断,例如来电。

MPMusicPlaybackStatePaused
音乐播放器暂停。

我无法查看来电,因为我现在没有 iPhone。
但只有几次我在MPMusicPlaybackStateInterrupted用 iPod touch 播放音乐时得到状态。

(不知道为什么会出现中断状态。除了播放音乐,没有来电,也没有其他操作)。

在那些时候,MPMusicPlayerController只是暂停播放音乐。

Question1和 和
有什么不一样?MPMusicPlaybackStateInterruptedMPMusicPlaybackStatePaused

Question2除了来电外,
什么时候会发生?MPMusicPlaybackStateInterrupted

Question3
拿到后该怎么办MPMusicPlaybackStateInterrupted
例如,当我得到MPMusicPlaybackStatePausedor时MPMusicPlaybackStateStopped,我应该更改播放/暂停按钮。

4

1 回答 1

2

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

Question1和 和
有什么不一样?MPMusicPlaybackStateInterruptedMPMusicPlaybackStatePaused

MPMusicPlaybackStatePaused播放器暂停时发生。
MPMusicPlaybackStateInterrupted当播放器被其他音频输出(例如来电或 Apple 时钟应用程序的计时器)中断时,就会发生这种情况。

Question2除了来电外,
什么时候会发生?MPMusicPlaybackStateInterrupted

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

其他中断示例包括 Siri/语音控制(按住主页按钮)、耳机远程控制(如果您使用应用程序MusicPlayer)、来电。
按下耳机遥控器的播放按钮不会使应用程序退出活动。中断永远不会结束。

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

Question3
拿到后该怎么办MPMusicPlaybackStateInterrupted
例如,当我得到MPMusicPlaybackStatePausedor时MPMusicPlaybackStateStopped,我应该更改播放/暂停按钮。

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

编辑
我发现不经常播放的音乐不会自动恢复。(这意味着你不能依赖自动恢复。)

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

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

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

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

于 2012-07-24T06:30:57.427 回答