【发布时间】:2018-11-17 14:06:15
【问题描述】:
我正在开发一个 iOS 应用程序,该应用程序利用语音到文本来接收来自用户的音频输入。但是,当我在测试多个真实场景时,每次将外部蓝牙耳机连接到手机时,我的应用程序都会崩溃。我注意到在AVAudioEngine 对象中的inputNode 上安装水龙头时会发生崩溃。
func configureAudioTap() {
let audioEngine = self.audioEngine
let inputNode = audioEngine.inputNode
let inputNodeFormat = inputNode.outputFormat(forBus: 0)
audioEngine.inputNode.installTap(onBus: 0, bufferSize: 1024, format: inputNodeFormat, block: { [unowned self] buffer, time in
self.recognitionRequest?.append(buffer)
})
}
在控制台中,我收到以下错误
exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: format.sampleRate == hwFormat.sampleRate'
调试时,我注意到我的蓝牙耳机和内置麦克风的采样率不同。我还浏览了音频会话编程指南文档,尤其是 Responding to Route Changes 部分,但没有成功。
非常感谢任何反馈!
【问题讨论】:
-
嗨。我也面临着类似的问题。你能解决这个问题吗?还有一个问题,您是否能够在每个蓝牙耳机上重现此问题,如果没有,您使用的是哪种耳机?这可能有助于我更好地联系。
-
你好@IndusWarrior,我还没有解决这个问题。仅在录制时 切换音频源时仍然会发生这种情况。如果有帮助,我正在使用 AirPods!
-
感谢您的回复。是的,它有帮助,在我的情况下,罪魁祸首也是 Airpods,我无法使用其他蓝牙耳机成功复制。
标签: ios swift xcode avaudiosession avaudioengine