XAudio2 音訊圖形
所有聲音的集合及其內含效果及其互相連線,稱為音訊處理圖形。 圖表會從用戶端取得一組音訊串流做為輸入、處理它們,並將最終結果傳遞至音訊裝置。 所有音訊處理都會在個別的執行緒中,其週期性由圖形的量子 (目前在 Microsoft Windows 上為 10 毫秒,而 Xbox 360) 上則為 5 1/3 毫秒。 每一個量子毫秒,執行緒都會透過整個圖表喚醒並分散音訊資料的量子毫秒。 如需建置基本音訊圖形的範例,請參閱如何: 建置基本音訊處理圖形。
簡單的音訊圖表:
用戶端可以在圖形執行時動態控制圖形的狀態。 控制動作可能包括新增和移除輸入和輸出、變更內部效果和互相連線、設定效果的參數、啟用和停用圖形的元件等等。 如需動態變更音訊圖表的範例,請參閱 如何:動態新增或移除音訊圖形中的語音。
處理圖形
影響圖形中任何物件的任何方法呼叫都會被視為影響圖形狀態變更。 圖形狀態變更包括下列各項:
- 建立和終結語音
- 啟動或停止語音
- 變更語音的目的地
- 修改效果鏈結
- 啟用或停用效果
- 在效果或內建 SRC、篩選、磁片區和混音器上設定參數
任何一組圖表狀態變更都可以合併並執行為不可部分完成的交易。 這些不可部分完成的作業稱為作業集。 這些主題會在 XAudio2 作業集 概觀中討論。
內部資料標記法
XAudio2 圖形內的音訊資料一律會以 32 位浮點 PCM 形式儲存和處理。 不過,通道計數和取樣率在圖形內可能會有所不同。 指定語音處理音訊的格式取決於用來建立語音的語音類型和參數。
語音類型 | 參數 |
---|---|
IXAudio2SourceVoice | 來源語音傳送音訊之語音的通道計數和取樣率。 |
IXAudio2SubmixVoice和IXAudio2MasteringVoice | 用來建立副混音/主控語音的 InputChannels 和 InputSampleRate 引數。 |
格式轉換
XAudio2 會處理音訊從一個語音傳送到另一個聲音時所需的任何取樣率或通道轉換,但有下列限制:
- 特定語音的所有目的地語音都必須以相同的取樣率執行
- 效果鏈結中的效果可以變更音訊的通道計數,但無法變更其取樣率
- 效果鏈的輸出通道計數必須符合它所傳送之語音的計數
- 無法進行任何動態圖表變更,這會中斷上述規則
在輸入端,來源語音可以使用任何有效的 PCM 格式或 XAudio2 支援的任何壓縮格式來讀取資料。 如果壓縮輸入資料,則會在進行任何進一步處理之前,將它解碼為浮點 PCM。
在輸出端,主控語音只能產生 PCM 資料。 此資料一律會滿足上述輸入 PCM 資料所描述的相同限制。
相關主題