我有一个用The Amazing Audio Engine 2
. 我一直在努力集成 Inter-App-Audio,并希望迁移到 AudioKit 3。
挣扎,意思是它集成了,但是一旦我选择它作为生成器,渲染就会停止,引擎处于禁用状态。
与音频系统的主要区别是什么?TAAE2 使用模块,每个模块都有一个渲染块,从渲染堆栈中推送和弹出音频缓冲区。
AudioKit 如何渲染音频?在将 AEModules 迁移到 Audiokit 对象的过程中,在高层次上会涉及什么?
我有一个用The Amazing Audio Engine 2
. 我一直在努力集成 Inter-App-Audio,并希望迁移到 AudioKit 3。
挣扎,意思是它集成了,但是一旦我选择它作为生成器,渲染就会停止,引擎处于禁用状态。
与音频系统的主要区别是什么?TAAE2 使用模块,每个模块都有一个渲染块,从渲染堆栈中推送和弹出音频缓冲区。
AudioKit 如何渲染音频?在将 AEModules 迁移到 Audiokit 对象的过程中,在高层次上会涉及什么?
对于音频渲染,它本质上是 AVAudioEngine、AUAudioUnit、AVAudioUnit 和 AVAudioNode 的包装器。它被概念化为渲染链而不是堆栈,但最终结果是相同的。您可以使用系统音频单元,也可以通过创建 AUAudioUnit 子类来注册自己的音频单元。
渲染链的工作方式大致相同,但使用基于块的 API。不是继承 AEAudioUnitModule 并将 processFunction 设置为 C 函数,您可以从渲染器中提取缓冲区列表和时间戳,而是继承 AUAudioUnit 并实现internalRenderBlock,在其中返回一个块,该块将使用缓冲区和时间戳作为参数调用块。这个块是您可以进行大部分移植的地方。
我不确定这不是正确的答案。但这可能与我们文档中的讨论相同吗?