9

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

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 文档上找不到任何帮助来了解问题所在。

有没有人有任何提示?

4

1 回答 1

5

这个问题原来是一个 iOS 错误,在 Apple 错误报告中有一个关于这个问题的未解决问题,它的 ID 为 29890198。它目前仍处于打开状态。

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

try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)

我建议还跟踪 Apple 论坛上打开的线程:https ://forums.developer.apple.com/thread/73166

希望它会很快得到修复。

于 2017-05-18T19:44:53.747 回答