gpt4 book ai didi

ios - 处理扬声器/蓝牙的播放输出

转载 作者:行者123 更新时间:2023-12-05 07:55:09 28 4
gpt4 key购买 nike

我正在尝试播放音频文件并处理可能发生的任何更改。如果我开始播放音频文件,它将在蓝牙扬声器上播放。如果我关闭扬声器,它会在手机扬声器上播放。 但是,如果我随后重新打开蓝牙扬声器,通知方法会运行但看不到蓝牙扬声器。

每当我打开蓝牙扬声器时,都会收到通知,该方法会运行,但蓝牙扬声器未在输出中列出。

通知:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("myRouteChangeSelector"), name: AVAudioSessionRouteChangeNotification, object: nil)

方法代码为:

func myRouteChangeSelector(){

let currentRoute = AVAudioSession.sharedInstance().currentRoute
for route in currentRoute.outputs {
println("PortType \(route.portType), Description \(route.portName)")
if route.portType == "BluetoothA2DPOutput"{
println("Bluetooth detected")
let portDescription = route as! AVAudioSessionPortDescription
AVAudioSession.sharedInstance().setPreferredInput(portDescription, error: nil)
} else {
println("No Bluetooth, speaker only")
AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionPortOverride.Speaker, error: nil)
}

}
}

最佳答案

看起来您正在尝试将输出设置为输入。您希望通过 currentRoute.inputs 而不是输出来搜索 portType AVAudioSessionPortBluetoothHFP 而不是 AVAudioSessionPortBluetoothA2DP,并将其设置为您的首选输入。

A2DP == 仅输出HFP == 输入输出

查看 AVAudioSession::setCategory/withOptions/mode 和相关参数的文档/标题注释;它们将严重影响操作系统最终选择的路线。

关于ios - 处理扬声器/蓝牙的播放输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30361254/

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