Audio Unit Processing Grapph 完整描述了一个音频信号处理过程。其功能包括: 连接一组 audio unit 之间的输入和输出,形成一张网状图并为audio unit 的输入提供了回调;子处理图允许嵌入到父处理图的各部分。
音频处理图形对象可以获取所有在图形的音频单元完整信息。在图中,每个节点代表一个音频单元或子图,我们可以添加或去除,并且修改它们之间的相互作。图形对象有一个头节点 - 输出单元。输出单元,用于启动和停止图的绘制操作; 在运行时,调度各个节点的信息。
audio unit processing graph 应用的大概流程:
创建 audio processing graph 对象
OSStatus NewAUGraph ( AUGraph *outGraph);
-
添加 audio nodes
OSStatus AUGraphAddNode ( AUGraph inGraph, const AudioComponentDescription *inDescription, AUNode *outNode);
打开audio processing graph 对象
OSStatus AUGraphOpen ( AUGraph inGraph);
各个audio node 添加相应的 audio unit 以及输入输出格式等信息
OSStatus AUGraphNodeInfo ( AUGraph inGraph, AUNode inNode, AudioComponentDescription *outDescription,);
关联audio nodes 之间的输入和输出
OSStatus AUGraphConnectNodeInput ( AUGraph inGraph, AUNode inSourceNode, UInt32 inSourceOutputNumber, AUNode inDestNode, UInt32 inDestInputNumber);
- 初始化 audio uint processing graph
OSStatus AUGraphInitialize ( AUGraph inGraph);
- 启动 audio uint processing graph
OSStatus AUGraphStart ( AUGraph inGraph);
- 停止 audio uint processing graph
OSStatus AUGraphStop ( AUGraph inGraph);
- 释放 audio uint processing graph 对象
OSStatus DisposeAUGraph ( AUGraph inGraph);