にルーティングの問題を引き起こして、次のように私は現在、私のAVAudioSessionを初期化しています:Bluetoothヘッドセットは、iOSの
NSError *myError = nil;
AVAudioSession* avSession = [AVAudioSession sharedInstance];
[avSession setCategory: AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker|AVAudioSessionCategoryOptionAllowBluetooth error: &myError];
は、これが正常に動作するようです。私がちょうどデバイスで始めるなら、私の出力は私のスピーカーです。有線のヘッドフォンを接続すると、オーディオをヘッドフォンにルーティングし直します。プラグを抜くと、メインスピーカーに戻ります。オーディオはレシーバーから出ることはありません。これは私が探している正しい動作です。
これは、有線ヘッドフォンの代わりに私のビートヘッドフォン(ブルートゥース)を使用するとうまく動作します。
ただし、アプリを起動する前にビートヘッドフォンを接続すると問題が発生します。アプリケーションは正しくそれらを選択し、すべてが正常ですが、私はその後、Bluetoothヘッドフォンを遮断または切断すると、オーディオはスピーカーの代わりに受信機にルーティングされます。
私はAVAudioSessionCategoryOptionDefaultToSpeakerフラグを尊重するようになっているはずですか?