1

MPMusicPlayerControllerplaybackStateプロパティについていくつか質問があります。

ドキュメントでは、MPMusicPlaybackStateInterruptedおよびMPMusicPlaybackStatePausedは次のように定義されています。

MPMusicPlaybackStateInterrupted
電話の着信などにより、音楽プレーヤーが中断されました。

MPMusicPlaybackStatePaused
音楽プレーヤーが一時停止されています。

iPhoneを持っていないので着信を確認できません。
しかし、MPMusicPlaybackStateInterruptediPodtouchで音楽を再生しているときに状態が発生したのはほんの数回でした。

(なぜ中断状態が発生したのかわかりません。電話の着信はなく、音楽を再生する以外の操作もありませんでした)。

そしてその時、MPMusicPlayerControllerただ音楽の演奏を一時停止しました。

質問1と
の違いは何ですか?MPMusicPlaybackStateInterruptedMPMusicPlaybackStatePaused

質問2電話の着信以外はいつ起こりますか
MPMusicPlaybackStateInterrupted

質問3受け取っ
たらどうすればいいMPMusicPlaybackStateInterruptedですか?
たとえば、MPMusicPlaybackStatePausedまたはを取得したらMPMusicPlaybackStateStopped、再生/一時停止ボタンを変更する必要があります。

4

1 に答える 1

2

iOS5.1.1で以下の情報を確認しました。

質問1と
の違いは何ですか?MPMusicPlaybackStateInterruptedMPMusicPlaybackStatePaused

MPMusicPlaybackStatePausedプレーヤーが一時停止したときに発生します。
MPMusicPlaybackStateInterruptedプレーヤーが、電話の着信やAppleのClockアプリのタイマーなどの他のオーディオ出力によって中断された場合に発生します。

質問2電話の着信以外はいつ起こりますか
MPMusicPlaybackStateInterrupted

MPMusicPlaybackStateInterrupted時計アプリのタイマーが鳴ったときに発生します。
-applicationWillResignActive:タイマーが鳴ったときにも呼び出されます。
ただしMPMusicPlaybackStatePaused、中断(タイマーのアラーム)が終了すると、音楽の再生は自動的に再開されます。

中断の他の例としては、Siri /音声制御(ホームボタンを押したままにする)、イヤホンのリモートコントロール(applicationMusicPlayerを使用している場合)、着信があります。
イヤホンのリモコンの再生ボタンを押しても、アプリはアクティブになりません。そして、中断は決して終わらない。

MPMusicPlaybackStateInterrupted画面上部に通知バナーが表示されても、再生状態は変化しません。
VoiceOverも中断を生成しません。

質問3受け取っ
たらどうすればいいMPMusicPlaybackStateInterruptedですか?
たとえば、MPMusicPlaybackStatePausedまたはを取得したらMPMusicPlaybackStateStopped、再生/一時停止ボタンを変更する必要があります。

MPMusicPlayerControllerPlaybackStateDidChangeNotification発生したときのコールバックでは何もする必要はありませんMPMusicPlaybackStateInterrupted
音楽の再生は中断後に自動的に再開されるためです。

編集
まれに音楽の再生が自動的に再開されないことがわかりました(つまり、自動再開に頼ることはできません)。

また、以下の場合、音楽の再生は自動的に再開されません。

  • イヤホンのリモコンボタンを押したとき。(applicationMusicPlayerを使用する場合)

  • タイマーが鳴ったら、ホームボタンをダブルタップし、アプリケーションを切り替え、タイマーを停止して、アプリケーションに戻ります。

  • 着信を受け入れた後、通話中にアプリに戻ったとき。

于 2012-07-24T06:30:57.427 に答える