Мне нужно настроить поток от iPhone встроенного микрофона на гарнитуру через HFP. Он прекрасно работает с A2DP, когда я настраиваю аудиосессию с опцией .allowBluetoothA2DP
, но HFP важен для моей задачи, потому что он намного быстрее, чем A2DP. Когда я настраиваю AVAudioSession с .allowBluetooth
, который фактически включает HFP на гарнитуре, вход автоматически переключается на микрофон гарнитуры.
Есть ли способ заставить его работать от iPhone mi c на гарнитуру через HFP?
Код ниже переключает гарнитуру в режим HFP, но микрофон используется от гарнитуры как хорошо.
AKSettings.bufferLength = .medium
AKSettings.defaultToSpeaker = false
AKSettings.enableRouteChangeHandling = true
AKSettings.playbackWhileMuted = true
let mic = AKMicrophone()
let mixer = AKMixer(mic)
let booster = AKBooster(mixer, gain: 2.0)
AudioKit.output = booster
mic?.start()
do {
try AudioKit.start()
// Do that after starting the AudioKit!
try? AKSettings.setSession(category: .playAndRecord, with: [ AVAudioSession.CategoryOptions.allowBluetooth ])
printInputOutputDevices()
} catch {
print("AudioKit boot failed.")
}