我对MPMusicPlayerController
的{{1}}属性有疑问。
在文档中,playbackState
和MPMusicPlaybackStateInterrupted
的定义如下:
MPMusicPlaybackStateInterrupted
音乐播放器已被中断,例如来电。
MPMusicPlaybackStatePaused
音乐播放器暂停了。
我无法查看来电,因为我现在没有iPhone
但是只有几次我在用iPod touch播放音乐时才MPMusicPlaybackStatePaused
状态。
(我不知道为什么中断状态发生了。除了刚播放音乐外,没有来电和其他操作。)
在那些时候,MPMusicPlaybackStateInterrupted
暂停了播放音乐。
问题1
MPMusicPlayerController
和MPMusicPlaybackStateInterrupted
之间有什么区别?
问题2
除了来电之外,MPMusicPlaybackStatePaused
何时发生?
问题3
得到MPMusicPlaybackStateInterrupted
后我该怎么办?
例如,当我收到MPMusicPlaybackStateInterrupted
或MPMusicPlaybackStatePaused
时,我应该更改播放/暂停按钮。
答案 0 :(得分:1)
我在iOS 5.1.1中确认了以下信息。
<强>问题1 强>
MPMusicPlaybackStateInterrupted
和MPMusicPlaybackStatePaused
之间有什么区别?
MPMusicPlaybackStatePaused
MPMusicPlaybackStateInterrupted
当播放器被其他音频输出中断时发生,例如来电或Apple时钟应用的定时器。
<强>问题2 强>
除了来电之外,MPMusicPlaybackStateInterrupted
何时发生?
MPMusicPlaybackStateInterrupted
当计时器响起时,也会调用-applicationWillResignActive:
但是MPMusicPlaybackStatePaused
没有发生,并且在中断(定时器的闹钟)结束后播放音乐会自动恢复。
其他中断示例包括Siri /语音控制(按住主屏幕按钮),耳机遥控器(如果使用applicationMusicPlayer),来电。 按下耳机遥控器的播放按钮不会使应用程序重新启动。中断永远不会结束。
当通知横幅出现在屏幕顶部时, MPMusicPlaybackStateInterrupted
不会发生并且播放状态不会改变
VoiceOver也不会产生中断。
<强>问题3 强>
得到MPMusicPlaybackStateInterrupted
后我该怎么办?
例如,当我收到MPMusicPlaybackStatePaused
或MPMusicPlaybackStateStopped
时,我应该更改播放/暂停按钮。
MPMusicPlayerControllerPlaybackStateDidChangeNotification
发生MPMusicPlaybackStateInterrupted
时,您无需回复{{1}}
因为播放音乐会在中断后自动恢复。
修改强>
我发现不经常播放音乐不会自动恢复。(这意味着你不能依赖自动恢复。)
在下列情况下,播放音乐不会自动恢复。
按下耳机的遥控器按钮。 (如果您使用applicationMusicPlayer)
当计时器响起时,您双击主页按钮,切换应用程序,停止计时器,然后切换回应用程序。
当您在接听来电后拨打电话时切换回应用程序。