gpt4 book ai didi

ios - 应用无法找到音频蓝牙 HFP 免提端口 Swift

转载 作者:IT王子 更新时间:2023-10-29 05:44:44 31 4
gpt4 key购买 nike

在我的应用程序中,我想检查已经连接到手机的 AVAudio 端口类型。下面的代码适用于 BluetoothA2DP 和耳机,但当我将手机连接到汽车免提装置时不适用于 BluetoothHFP。谁能帮我?!我认为已经阅读了关于免提/AV/蓝牙以及许多其他内容的所有 SO 帖子,但无法弄清楚为什么它无法识别 BluetoothHFP 输出端口类型。

import AVFoundation

func startCheckAVConnection() {

// set the AVAudioSession to allow bluetooth. This do/try/catch doesn't seem to make a difference if it is here or not.
do{
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, with: AVAudioSessionCategoryOptions.allowBluetooth)
} catch{
print(error)
}

// Check possible outputs for handsfree
let outputs = AVAudioSession.sharedInstance().currentRoute.outputs

if outputs.count != 0 {
for output in outputs {
if output.portType == AVAudioSessionPortBluetoothA2DP {
peripheralLabel.text = "connected to BluetoothA2DP"
} else if output.portType == AVAudioSessionPortBluetoothHFP { // NOT RECOGNISED
peripheralLabel.text = "connected to BluetoothHFP"
} else if output.portType == AVAudioSessionPortHeadphones {
peripheralLabel.text = "connected to Headphones"
}
}
} else {
peripheralLabel.text = "Please connect handsfree"
}

// Add observer for audioRouteChangeListener
NotificationCenter.default.addObserver(
self,
selector: #selector(TopVC.audioRouteChangeListener(_:)),
name: NSNotification.Name.AVAudioSessionRouteChange,
object: nil)
}

最佳答案

我需要在 setCategory 之后添加 setActive。

 do { try AVAudioSession.sharedInstance().setActive(true)
print("setActive")
} catch {
print(error)
}

关于ios - 应用无法找到音频蓝牙 HFP 免提端口 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42680818/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com