Share via


XAudio2 聲音

XAudio2 語音物件有三種類型: 來源副混音主控 語音。 來源聲音在用戶端提供的音訊資料上操作。 來源和次混音聲音會將它們的輸出傳送到一或多個次混音或主播放聲音。 次混音和主播放聲音會將傳入的所有聲音的音訊混合在一起,然後在結果上操作。 主播放聲音會將音訊資料寫入音訊裝置。

所有語音執行的動作

所有語音都會在音訊上執行下列動作,這些動作會隨著音訊移動。

  1. 整體音量調整,影響所有音訊通道。 請參閱 IXAudio2Voice::SetVolume
  2. 一或多個 DSP 效果的選擇性用戶端指定鏈結,例如 IXAPO 介面所定義的內建殘響或使用者效果。 請參閱 XAudio2 音訊效果
  3. 每個通道的輸出音量調整。 請參閱 IXAudio2Voice::SetChannelVolumes
  4. 將矩陣混合到每個目的地語音或音訊輸出裝置,以用於主控語音。 此混合會視需要變更音訊中的通道數目。

來源語音

使用來源語音將音訊資料提交至 XAudio2 處理管線。 它們是 XAudio2 Audio Graph的進入點。 您必須直接或透過中繼副混音語音,將語音資料傳送到主控語音。

除了所有語音所執行的動作之外,來源語音還會執行下列動作。

  • 如有必要,解碼器會先執行,以將編碼的來源資料轉換成 Pulse Code 擷取 (PCM) 。
  • 可變速率取樣率轉換 (SRC) 視需要,將語音的來源音訊資料轉換成其目的地語音預期的取樣率,而且也支援動態音調變更。
  • 選擇性狀態變數篩選準則可用來以各種方式為音效著色。 請參閱 IXAudio2Voice::SetFilterParameters
  • 選擇性篩選準則可以套用至語音的輸出。 請參閱 IXAudio2Voice::SetOutputFilterParameters

Submix Voices

副混音主要用於效能改善和效果處理。 您無法將資料緩衝區直接提交至副混音。 除非您將它提交到主控語音,否則無法聽見。 您可以使用副混音來確保特定一組語音資料會轉換成相同的格式,並在整體結果上處理特定的效果鏈結。

除了所有語音所執行的動作之外,子混音還會執行下列動作。

主控語音

使用主控語音來代表音訊輸出裝置。 您無法直接將資料緩衝區提交到主控語音,但提交至其他類型的語音的資料必須移至要聽到的主控語音。

除了所有語音所執行的動作之外,主控語音還會執行下列動作。

  • 如果您使用音訊裝置不支援的明確 InputSampleRate 值來建立主控語音,則會使用固定速率 SRC 轉換為裝置所支援的最接近取樣率。
  • 如果輸出裝置需要,請裁剪最終輸出音訊。

語音

XAudio2 程式設計指南

IXAudio2SourceVoice

IXAudio2SubmixVoice

IXAudio2MasteringVoice