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);