2012-07-18 43 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)

  • 當計時器響起時,您雙擊主頁按鈕,切換應用程序,停止計時器並切換回應用程序。

  • 當您在接聽來電後打電話時切換回應用程序。