CoreAudio 崩溃 - AVAudioIONodeImpl.mm:365: _GetHWFormat: 所需条件为 false: hwFormat

CoreAudio crash - AVAudioIONodeImpl.mm:365: _GetHWFormat: required condition is false: hwFormat

我正在使用两个应用程序模块:

1) 使用此 audioSession 设置的录音模块:

try audioSession.setCategory(AVAudioSessionCategoryRecord)
try audioSession.setMode(AVAudioSessionModeMeasurement)
try audioSession.setPreferredIOBufferDuration(0.05)
try self.audioSession.setActive(true)

2) 使用此 audioSession 设置的录音模块:

try audioSession.setCategory(AVAudioSessionCategoryPlayback) 
try audioSession.setMode(AVAudioSessionModeDefault)
try self.audioSession.setActive(true)

对于 1->2 和 2-1 的每个段落,我都有一个 try self.audioSession.setActive(false)

如果我从 1) 模块传递到 2) 或重做 1) 一切正常。如果从 2) 我来到 1) 我在 try self.audioSession.setActive(true)

上得到这个错误

这是错误:

ERROR:    [0x16e10b000] >avae> AVAudioIONodeImpl.mm:365: 
_GetHWFormat: required condition is false: hwFormat

此错误与什么有关?我在 Apple iOS 文档中找不到任何帮助来了解问题出在哪里。

有人有什么建议吗?

问题变成了一个 iOS 错误,在 ID 为 29890198 的 Apple Bug 报告中有一个关于此问题的未解决问题。目前仍处于打开状态。

作为解决方法,我设法通过在录音阶段设置 AVAudioSessionCategoryPlayAndRecord 代替 AVAudioSessionCategoryRecord 来解决问题:

try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)

我建议也跟踪 Apple 论坛上打开的主题:https://forums.developer.apple.com/thread/73166

希望它能尽快修复。