将效果应用于渲染回调中的一个或一组总线

时间:2017-02-21 00:23:37

标签: ios core-audio

我有一个渲染回调,有20个总线路由到调音台,需要仅对其中一些总线应用效果。

我是否需要不同的回调,或者我可以使用相同的渲染获得它?

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点。

您可以在调音台和回调之间手动添加效果。因此,不是直接在混音器输入上设置回调,而是为每个需要它的总线创建一个效果单元,将效果连接到混音器输入,然后在效果上设置输入回调。 (最直截了当)

示例:

AUGraphConnectNodeInput(inGraph, sourceEffect, inSourceOutputNumber, mixerNode, inDestInputNumber);
AUGraphSetNodeInputCallback (inGraph, sourceEffect,0,&inputCallbackStruct);

您可以保留对每个效果的引用,然后在回调中手动调用AudioUnitRender效果。 (有点复杂)

如果您希望在多个总线上使用单一效果进行此处理,则可以使用两个混音器。所有需要效果的总线将被路由到“效果混音器”,然后效果可以在“效果混音器”的输出上,效果的输出可以传送到主混音器。 (效率最高)