我在我的 iOS 应用程序中使用了两个 AUGraph,一个用于录制音频,一个用于播放音频。我一次只用一个。只要我每次开始使用它们时从头开始重新创建 AUGraph 实例,它就可以正常工作。
我试图重用这些 AUGraph,而不是每次在录制和播放之间切换时创建和初始化它们的新实例。
我在执行此操作时遇到了问题,因为在执行以下步骤时,下次尝试从 I/O 单元获取麦克风数据时出现错误:
- 撰写记录图
- 初始化记录图
- 开始记录图表
- 停止记录图表
- 撰写回放图
- 初始化播放图
- 开始播放图表
- 停止播放图表
- 开始记录图表
然后是导致错误的调用,返回码为 -50(此语句在每次重新创建 AUGraph 时都可以正常工作):
OSStatus status = AudioUnitRender(
remoteIoUnit,
ioActionFlags,
inTimeStamp,
CB_remoteIoUnitInputElement,
inNumberFrames,
ioData
);
通常是否可以重用 AUGraph,如果可以,如何实现?