iphone – iOS中AudioUnit图的可重用性

我在我的iOS应用程序中使用了两个AUGraphs,一个用于录制音频,另一个用于播放音频.我一次只使用一个.只要我每次开始使用它们时都从头开始重新创建AUGraph实例,这样就可以正常工作.

我试图重复使用这些AUGraphs而不是每次在录制和回放之间切换时创建和初始化它们的新实例.

我在执行此操作时遇到问题,因为在执行以下步骤时,下次尝试从I / O单元获取麦克风数据时出现错误:

>撰写录音图
>初始化录制图
>开始录制图表
>停止录制图表
>撰写回放图
>初始化播放图
>开始播放图表
>停止播放图表
>开始录制图表

然后是导致错误的调用,返回代码为-50(每次重新创建AUGraph时此语句都可以正常工作):

OSStatus status = AudioUnitRender(
    remoteIoUnit,
    ioActionFlags,
    inTimeStamp,
    CB_remoteIoUnitInputElement,
    inNumberFrames,
    ioData
);

重复使用AUGraphs通常是可能的,如果是这样,怎么样?

最佳答案 可以以与问题中描述的相同方式完全重用AU图.

它为什么不起作用的问题是我有一个错误导致我的两个AUGraph实例之间的干扰/覆盖.我只是偶然发现了这些错误.自从我修复它们以来,AUGraphs按预期工作.

当保持两个AUGraph实例完全分离时,您可以根据需要使用和重用任意数量的AUGraph实例.我没有测试它们是否可以同时使用.

点赞