私は、入出力処理(PlayAndRecordカテゴリ)にRemoteIOを使用するアプリケーションを持っており、MPMusicPlayerControllerも含んでいます。MPMusicPlayerController iPhone上のRemoteIOを終了するSpeaker route
奇妙なこと:iPhoneの場合、RemoteIOが動作し、iPhone Speakerがオーディオの宛先である場合、MPMusicPlayerControllerで再生を開始するとkAudioSessionBeginInterruptionイベントが発生し、RemoteIOがシャットダウンします。 iPodの音楽(MPMusicPlayerController)は引き続き再生されます。
スピーカールートを使用したiPhoneでは、RemoteIOとMPMusicPlayerControllerの両方を再生できないようですか? iPadでは、RemoteIOとMPMusicPlayerControllerの両方を実行しても問題はありませんでした。 iPhoneの場合、ヘッドセットのジャックに何か(ヘッドフォン、スピーカーなど)を接続すると、すべてうまく動作し、両方のストリームが動作します。スピーカーが目的地であれば、それはiPhone上でのみ問題になるようです。
Iは、iPhoneスピーカー(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker)にAudioSession出力をオーバーライドするレシーバ出力が検出された場合、これはユーザにとってより自然な期待であることが行われます。 iPodのプレーヤーもこれをやっているようだ。
また、プロパティkAudioSessionProperty_OverrideCategoryMixWithOthersをtrueに設定しました。これにより、iPodプレイヤーは(おそらく)一緒にプレイすることができます。
私は後でRemoteIOセッションを再開するためのテストコードを書いたので、MPMusicPlayerControllerが再生を停止します。したがって、話し手の宛先が排他的であることを示すか?
MPMusicPlayerControllerの 'iPodMusicPlayer'と 'applicationMusicPlayer'の両方のメンバーで試してみましたが、上記の結果に違いはありませんでした。
何かアドバイスは確かに私はそれを考え出したと思うので、私は、先に行くと自分の質問にお答えします
これをさらにテストして唯一の奇妙なケース(iPadはうまく動作し、ヘッドセットは正常に動作する)であることを確認した後、Appleにバグを提出しました。 – MOK9