ヘッダーを見ると、iOS6 では、AVAudioSessionDelegate が非推奨になっているようです。
AVAudioSessionInterruptionNotification
iOS6 で代わりに使用します。
更新:うまくいきませんでした。フレームワークにバグがあると思います。
はい、私の経験では、beginInterruption も、新しく文書化された AVAudioSessionInterruptionNotification も正しく機能しません。私がしなければならなかったのは、ローカル フラグを使用してプレーヤーのステータスをendInterruption:withFlags:
追跡し、中断からの回復を追跡するためにメソッドを処理することでした。
iOS 6 では、中断からの再開により、少なくとも AudioPlayer は適切な場所に保持されるため、AVAudioPlayer の最後の既知の再生時間を保存する必要はなく、再生を押すだけで済みました。
これが私が思いついた解決策です。AVPlayer の常駐時間が長すぎると、iOS 6 がメディア リセットでオーディオを強制終了するようです。結局、AVPlayer は再生されるのですが、音が出ません。AVPlayer のレートは 1 ですが、まったく音が出ません。状況に苦痛を加えるために、問題があることを示す AVAudioSession setActive にも AVPlayer 自体にもエラーはありません。
リモコンのジェスチャーにまったく依存している場合、アプリはすでにバックグラウンドにある可能性があるため、appWillResignActive に依存できないという事実に加えてください。
私が実装した最終的な解決策は、AVPlayer に定期的なオブザーバーを追加し、最後の既知の時間を記録することでした。制御が戻ったというイベントを受け取ると、新しい AVPlayer を作成し、AVPlayerItem を使用してロードし、seekToTime を適切な時間に合わせます。
これは非常に厄介な回避策ですが、少なくとも機能し、発生していた定期的なクラッシュを回避できます。