我对 MPMusicPlayerController
的 playbackState
属性有一些疑问。
文档中MPMusicPlaybackStateInterrupted
和MPMusicPlaybackStatePaused
定义如下:
MPMusicPlaybackStateInterrupted
音乐播放器已中断,例如来电。
MPMusicPlaybackStatePaused
音乐播放器已暂停。
因为我现在没有 iPhone,所以无法查看来电。
但只有几次我在使用 iPod touch 播放音乐时出现 MPMusicPlaybackStateInterrupted
状态。
(不知道为什么会出现中断状态,没有来电,除了播放音乐外没有其他操作)
在那些时候,MPMusicPlayerController
只是暂停播放音乐。
问题1
MPMusicPlaybackStateInterrupted
和 MPMusicPlaybackStatePaused
有什么区别?
问题2
除了来电之外,MPMusicPlaybackStateInterrupted
什么时候发生?
问题3
当我得到 MPMusicPlaybackStateInterrupted
时我该怎么办?
例如,当我得到 MPMusicPlaybackStatePaused
或 MPMusicPlaybackStateStopped
时,我应该更改播放/暂停按钮。
最佳答案
我用 iOS 5.1.1 确认了以下信息。
问题1
MPMusicPlaybackStateInterrupted
和 MPMusicPlaybackStatePaused
有什么区别?
MPMusicPlaybackStatePaused
在播放器暂停时发生。
MPMusicPlaybackStateInterrupted
当播放器被其他音频输出中断时发生,例如来电或 Apple 的时钟应用程序的计时器。
问题2
除了来电之外,MPMusicPlaybackStateInterrupted
什么时候发生?
MPMusicPlaybackStateInterrupted
当时钟应用程序的计时器响起时发生。
-applicationWillResignActive:
当计时器响起时也会被调用。
但是MPMusicPlaybackStatePaused
不会发生,并且在中断(定时器的闹钟)结束后自动恢复播放音乐。
其他中断示例包括 Siri/语音控制(按住主屏幕按钮)、耳机远程控制(如果您使用 applicationMusicPlayer)、来电。
按下耳机 Remote 的播放按钮不会使应用程序退出事件状态。中断永远不会结束。
MPMusicPlaybackStateInterrupted
不会发生,当通知横幅出现在屏幕顶部时播放状态不会改变。
VoiceOver 也不会产生中断。
问题3
当我得到 MPMusicPlaybackStateInterrupted
时我该怎么办?
例如,当我得到 MPMusicPlaybackStatePaused
或 MPMusicPlaybackStateStopped
时,我应该更改播放/暂停按钮。
当 MPMusicPlaybackStateInterrupted
发生时,您无需在 MPMusicPlayerControllerPlaybackStateDidChangeNotification
的回调中执行任何操作。
因为播放音乐中断后会自动恢复。
编辑
我发现不经常播放的音乐不会自动恢复。(这意味着你不能依赖自动恢复。)
并且在以下情况下不会自动恢复播放音乐。
当耳机的遥控按钮被按下时。 (如果你使用 applicationMusicPlayer)
当计时器响起时,您双击主页按钮,切换应用程序,停止计时器,然后切换回应用程序。
当您接听来电后在通话中切换回应用程序时。
关于iPhone:什么是 MPMusicPlaybackStateInterrupted?它和 MPMusicPlaybackStatePaused 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11537321/