XAudio2 音量和音調控制項
本主題描述 XAudio2 音量和音調控制。
音量控制
磁片區層級會以 -XAUDIO2_MAX_VOLUME_LEVEL 和 XAUDIO2_MAX_VOLUME_LEVEL (-224 到 224) 之間的浮點幅度乘數表示,最大增益為 144.5 dB。 1.0 的磁片區表示沒有衰減或增益;0 表示無聲;和負層級可用來反轉音訊的階段。 XAudio2.h 中提供兩個內嵌函式,以在磁片區單位之間轉換: XAudio2DecibelsToAmplitudeRatio 和 XAudio2AmplitudeRatioToDecibels。
您可以在數點將音量層級套用至音訊,因為它流經 XAudio2 圖表:
- 所有語音類型都會將整體音量層級套用至其輸入,它們會使用 IXAudio2Voice::SetVolume 方法來控制。 在副混音和主控語音中,整體音量層級會在語音的內建篩選和效果鏈結之前套用。 在來源語音中,整體音量層級會在語音的內建篩選和效果鏈結之後套用。
- 語音會使用 IXAudio2Voice::SetChannelVolumes 方法來控制每個通道的音量層級。 每個通道音量層級會在語音的最終取樣率轉換之後套用,並在傳送至其他語音之前套用。
- 一個語音與另一個語音之間的每個連線都有一個層級表格,用來將每個來源通道的音訊傳送至每個目標通道,使用 IXAudio2Voice::SetOutputMatrix 方法來控制。
所有整體磁片區和通道磁片區一開始預設為 1.0。 所有傳送層級矩陣都會預設為適當的值,以盡可能精確地保留訊號電源和通道定位。 如需詳細資訊,請參閱 XAudio2 預設通道對應 概觀。
注意
XAudio2 會根據使用者的說話者設定自動調整音量層級,以在設定之間維持一致的音量層級。 如果使用者的設定不符合其實體設定,則相較于具有精確設定的系統,磁片區會太大或太軟。 例如,針對 5.1 環繞音效喇叭設定的系統,只有兩個連接喇叭的音效太軟。 XAudio2 無法偵測使用者說話者設定是否正確符合其實體設定。
間距控制項
音調會以介於 1/1,024 和 1,024/1 之間的輸入速率/輸出速率比率表示,內含。 1/1,024 的比例會降低 10 個八位的音調,而 1,024/1 的比率則會以 10 個八位提升。 您只能使用 IXAudio2SourceVoice::SetFrequencyRatio 方法,將音調調整套用至來源語音,而且只有在它們不是使用 XAUDIO2_VOICE_NOPITCH 旗標建立時。 預設頻率比率為 1/1:也就是說,不會變更音調。 XAudio2.h 中提供兩個內嵌函式,以在頻率比率和半色調之間轉換: XAudio2FrequencyRatioToSemitones 和 XAudio2SemitonesToFrequencyRatio。
相關主題