AUGraph 弃用是否意味着不再有音频渲染回调?

Does AUGraph deprecation means no more audio render callbacks?

我有一个带有详细渲染回调的应用程序,我怀疑它可以用 AVAudioEngine 完成。

无论如何要将我的 AUGraph 渲染回调(具有多个总线)与 AVAudioEngine 一起使用?

有示例代码吗?

Audio Unit API 没有被弃用,只有 AUGraph 可能是建立在它之上的。

使用 AudioUnitSetProperty with kAudioUnitProperty_MakeConnection with an AudioUnitConnection 结构建立连接。

使用 AudioOutputUnitStart and AudioOutputUnitStop 启动和停止输出单元。

使用 AudioUnitSetProperty and kAudioUnitProperty_SetRenderCallback with an AURenderCallbackStruct

设置渲染回调

除了一点簿记和更简单的连接语法外,AUGraph 并没有为您提供那么多。

A (non-deprecated) V3 AUAudioUnit 子类仍然可以 return 支持音频渲染回调的 AUInternalRenderBlock。然后 AVAudioEngine API 可以连接这些音频单元(例如,连接到混音器节点)。 iOS.

上的 near-real-time 音频合成和分析似乎仍然允许音频单元 V3 渲染功能较短(少于 500 个样本的缓冲区)

查看我在 GitHub 上的 V3 AU 示例应用程序(混合 Swift 和 Objective C):https://github.com/hotpaw2/auv3test5