我在 iOS 应用程序中使用了两个 AUGraph,一个用于录制音频,另一个用于播放音频。我一次只使用一个。只要我每次开始使用它们时从头开始重新创建 AUGraph 实例,这就可以正常工作。
我试图重用这些 AUGraph,而不是每次在录制和播放之间切换时创建和初始化它们的新实例。
我在执行此操作时遇到问题,因为在执行以下步骤时,下次尝试从 I/O 单元获取麦克风数据时出现错误:
然后是导致错误的调用,返回码为 -50(每次重新创建 AUGraph 时,此语句都可以正常工作):
OSStatus status = AudioUnitRender(
remoteIoUnit,
ioActionFlags,
inTimeStamp,
CB_remoteIoUnitInputElement,
inNumberFrames,
ioData
);
重用 AUGraphs 通常是否可行,如果可以,如何重用?
最佳答案
可以完全按照问题中描述的方式重用 AU Graph。
为什么它对我不起作用的问题是我有一个错误,导致我的两个 AUGraph 实例之间发生干扰/覆盖。我只是偶然发现了这些错误。由于我修复了它们,AUGraphs 按预期工作。
当保持两个 AUGraph 实例完全分开时,您可以根据需要使用和重用任意数量的 AUGraph 实例。我没有测试它们是否可以同时使用。
关于iphone - iOS 中 AudioUnit Graph 的可重用性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17578433/