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

Ios 将效果应用于渲染回调中的一个或一组总线,ios,core-audio,Ios,Core Audio,我有一个渲染回调,有20条总线路由到一个混音器,只需要对其中的一些总线应用效果 我是否需要为此调用不同的回调,或者我可以使用相同的渲染获得它?有几种方法可以做到这一点 您可以在混音器和回调之间手动添加效果。因此,与直接在混音器输入上设置回调不同,您可以为每个需要它的总线创建一个效果单元,将效果连接到混音器输入,然后在效果上设置输入回调。最直接 例如: AUGraphConnectNodeInput(inGraph, sourceEffect, inSourceOutputNumber, mixe

我有一个渲染回调,有20条总线路由到一个混音器,只需要对其中的一些总线应用效果


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

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

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

例如:

AUGraphConnectNodeInput(inGraph, sourceEffect, inSourceOutputNumber, mixerNode, inDestInputNumber);
AUGraphSetNodeInputCallback (inGraph, sourceEffect,0,&inputCallbackStruct);
您可以保留对每个效果的引用,然后在回调中手动调用该效果的AudioUnitRender。有点复杂


如果您希望在多个总线上使用单一效果进行处理,可以使用两个混频器。所有需要效果的总线将被路由到效果混合器,然后效果可以在效果混合器的输出上,效果的输出可以进入主混合器。最有效的

您是否将混音器的20个输入设置为渲染回调?20对于此项目,我还有其他超过40个的项目。您应该编辑您的问题以反映混音器的存在。非常感谢您的回答,Dave.Dave。我一直在测试它。为另一个混合器或效果设置总线,似乎会引发独立的渲染。例如,如果我将总线1直接设置为延迟节点,将延迟节点设置为混合器的输入1,则回调会为此效果总线抛出总线0,然后为主混合器设置另一个渲染,而不使用效果总线0、2、3、4。。。。这是正常的行为吗。。。。如果是这样的话,那就麻烦了,因为它会使我的频道失去同步。。我得做很多代码修改你用的是螺旋描记器吗?你是如何连接这些效果的呢;如果busNumber==InBuustest{result=AUGraphSetNodeInputCallback processingGraph,delay1Node,0,&inputCallbackStruct;}或者{result=AUGraphSetNodeInputCallback processingGraph,mixerNode,busNumber,&inputCallbackStruct;}AUGraphConnectNodeInput processingGraph,delay1Node,0,mixerNode,InBuustest;