Audio Unit Processing Graph

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章