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