gpt4 book ai didi

ios - 在通话或 Facetime session 中,尝试使用 SpeechRecognizer 会导致应用程序崩溃

转载 作者:行者123 更新时间:2023-11-29 05:42:01 25 4
gpt4 key购买 nike

标题中描述的场景会产生以下错误:

Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: IsFormatSampleRateAndChannelCountValid(format)

之后,我被转入应用程序委托(delegate),并且没有为出现的问题提供太多帮助。

我熟悉正确结束 Audio Session 的需要,但在我的特殊情况下,在开始 session 时会发生这种情况,特别是在这里:

node.installTap(onBus: bus, bufferSize: 1024, format: recordingFormat) { buffer, _ in
request.append(buffer)
}

最佳答案

通过将我的函数追溯到这一行可以看出这里的罪魁祸首:

let recordingFormat = node.outputFormat(forBus: bus)

由于麦克风被分配给另一个应用程序(在我的情况下为 Facetime),因此它无法访问它来执行发生崩溃的问题中发布的功能。

我发现通过监控采样率,我可以确定我是否具有独占访问权限。

if recordingFormat.sampleRate == 0.0 {
throw(MyAwesomeError.audioInUse)
}

当值为0.0时,表示正在使用。当值为 44100.0 时,我就开始营业了。

通过将上述检查放在 node.installTap(...) 函数之前,我可以安全地避免崩溃,然后使用现有的错误处理代码来通知用户这种情况。

把所有东西放在一起,看起来像这样:

let recordingFormat = node.outputFormat(forBus: bus)
if recordingFormat.sampleRate == 0.0 {
throw(MyAwesomeError.audioInUse)
}
node.installTap(onBus: bus, bufferSize: 1024, format: recordingFormat) { buffer, _ in
request.append(buffer)
}

关于ios - 在通话或 Facetime session 中,尝试使用 SpeechRecognizer 会导致应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56471193/

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