使用AudioKit的AudioEngine动态切换输出节点链时遭遇错误与录音失效问题
使用AudioKit的AudioEngine动态切换输出节点链时遭遇错误与录音失效问题
我现在在用AudioKit封装的AudioEngine(对AVAudioEngine的包装)做动态切换输出节点链的功能:先通过AKNodeRecorder将音频录制到文件,之后切换为AKAudioPlayer输出音频,但过程中遇到了两个棘手问题:
遇到的问题
- 启动AudioPlayer时,控制台会刷出大量相同的错误日志,目前看起来没影响功能,但实在闹心(对应代码里的// 1. ISSUE:):
ioData.mNumberBuffers=2, ASBD::NumberChannelStreams(output.GetStreamFormat())=1;
kAudio_ParamError from AU (0x11be06700): auou/rioc/appl, render err: -50
- 更关键的是,当我再次切换回AKNodeRecorder时,最终录出来的是一个空文件(对应代码里的// 2. ISSUE:)
已尝试的解决方法
- 尝试过添加延迟,或者等待AVAudioEngine的通知,确保引擎已经正确重启,但情况没有改善
- 手动detach相关节点,也没能解决问题
备注:内容来源于stack exchange,提问作者jalone
相关产品推荐
相关产品推荐

