概要
AVAudioSessionでBluetoothイヤホンの内蔵マイクからの音声入力を可能にする設定方法をまとめました。
音声出力に関しては「AVAudioSessionの音が Bluetoothイヤホンから流れない」「AVAudioSessionのPlayAndRecordで音量が小さくなる」をご覧ください。
このページはswift4.2のコードを使用しています。
対応方法
setCategoryの指定に「.allowBluetooth」を追加することで解決します。
「.allowBluetooth」と「.allowBluetoothA2DP」の2つを指定している場合はが「.allowBluetooth」優先されます。
指定がない場合、音声入力にはiPhoneのマイクが使用されます。
let session = AVAudioSession.sharedInstance()
do {
try session.setCategory(AVAudioSession.Category.playAndRecord, mode: .default, options: [.defaultToSpeaker, .allowBluetooth])
try session.setActive(true)
} catch let error {}
「.allowBluetooth」と「.allowBluetoothA2DP」の違い
setCategoryのoptionsでは、どのBluetoothプロファイルを使用するかを決めています。
「.allowBluetooth」では通話機能を持つ「HFP/HSP」が使用され、「.allowBluetoothA2DP」では音楽再生に適した「A2DP」が使用されます。
この2種類の違いは「音声入力の有無」と「音質」です。
「HFP/HSP」では音声の入出力が可能ですが、電話越しに聞いているような低音質になります。
「A2DP」では音声入力が不可能ですが、音声出力は高音質で聞こえます。
どちらか片方しか使うことができないため、使い分けが必要な場合は再度setCategoryでおちらかを指定する必要があります。
投稿者プロフィール
最新の投稿
- 2023年10月9日プログラミング【ライセンス】GPL/LGPLライブラリについて
- 2023年8月19日その他【Pixiv】閲覧注意機能が反映されないときに確認すること
- 2023年4月30日プログラミング【JavaScript】ファイルの保存先をダイアログで指定する方法 – showSaveFilePicker()の使い方
- 2022年10月17日その他「NovelAI Diffusion」を使ってみた (Img2Img)