質問: あけましておめでとうございます。 下記、お力添え頂けますと幸いです。 iPhone上部のスピーカー(Ear Speaker)とAirpods(Bluetooth)の出力の切り替えが出来ず困っています。 上部のスピーカーは、電話の際などに使われる小音のスピーカーです。 Aボタンを押したらEar Speakerで再生、Bボタンを押したらAirpodsで再生するようにしています。 上部スピーカーでの再生は、下記コードでうまくいきます。 ``` //Aボタン try audioSession.overrideOutputAudioPort(AVAudioSession.PortOverride.none) ``` Bluetoothも使用できるようにするために、別箇所に下記コードも記載し、Bボタンを押すとBluetooth再生されます。 ``` //Bボタン do { try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, options: AVAudioSession.CategoryOptions.allowBluetooth) } catch { } ``` しかしながら、Bボタンを押した後に、Aボタンを押すと、上部スピーカーではなくメインの大音量のスピーカーで再生されてしまいます。一度Bluetoothのコードを経てしまうと、デフォルトでメインのスピーカーがセットされてしまうようです。Aボタンを押したらもう一度 PortOverride.noneで上書きできると思っていたので、不可解です。もちろん、Bボタンを押さずに最初からAボタンだけ押した場合は、上部スピーカー再生されます。 何かお気づきの点がございましたら、ご助言もらえますと大変幸いです。 何卒よろしくお願いいたします。
回答: > > 何かお気づきの点がございましたら > > > Bluetoothイヤホンの場合 ミュージックアプリでは自分で選択することができますが イヤホンが接続されていなければ選択もできない ボタンでBluetoothの使用を行うというのではタイミングが遅すぎなのでは nativeでは接続されているか確認して接続されている場合のみ選択ができるようですが