IXAudio2Voice::SetOutputMatrix 方法 (xaudio2.h)
設定語音最終輸出之每個通道的音量層級。 這些通道會對應至指定目的地語音的輸入通道。
語法
\\HRESULT SetOutputMatrix(
[in] IXAudio2Voice *pDestinationVoice,
[in] UINT32 SourceChannels,
[in] UINT32 DestinationChannels,
[in] const float *pLevelMatrix,
[in] UINT32 OperationSet
);
參數
[in] pDestinationVoice
要設定磁片區層級的目的地 IXAudio2Voice 指標。
[in] SourceChannels
確認語音的輸出通道計數。 這是鏈結中最後一個效果所產生的通道數目。
[in] DestinationChannels
確認目的地語音的輸入通道計數。
[in] pLevelMatrix
傳送至目的地語音的 [SourceChannels × DestinationChannels] 磁片區層級陣列。 從來源通道S傳送至目的地通道D的層級是以pLevelMatrix[SourceChannels × D + S] 形式指定。
例如,當將雙通道立體輸入轉譯為 5.1 輸出時,其加權為前端通道,但中心通道和低頻率通道不存在時,矩陣可能會有下表所示的值。
輸出 | 左輸入 [陣列索引] | 右輸入 [陣列索引] |
---|---|---|
Left | 1.0 [0] | 0.0 [1] |
Right | 0.0 [2] | 1.0 [3] |
Front Center | 0.0 [4] | 0.0 [5] |
LFE | 0.0 [6] | 0.0 [7] |
左下方 | 0.8 [8] | 0.0 [9] |
右後方 | 0.0 [10] | 0.8 [11] |
[in] OperationSet
將此呼叫識別為延遲批次的一部分。 如需詳細資訊,請參閱 XAudio2 作業集 概觀。
傳回值
如果成功,則傳回S_OK,否則傳回錯誤碼。 如需錯誤碼的描述,請參閱 XAudio2 錯誤 碼。
備註
此方法僅適用于來源和副混音,因為主控語音會直接寫入沒有矩陣混合的裝置。
磁片區層級會以 -XAUDIO2_MAX_VOLUME_LEVEL 和 XAUDIO2_MAX_VOLUME_LEVEL (-2ー⁴ 到 2ー⁴) 之間的浮點幅度乘數表示,最大增益為 144.5 dB。 1.0 的音量層級表示沒有衰減或增益,而 0 表示無聲。 負層級可用來反轉音訊的階段。 如需音量控制的其他資訊,請參閱 XAudio2 音量和音調控制 。
X3DAudio函式X3DAudioCalculate可以產生輸出矩陣,以根據音效的位置和接聽程式的位置搭配SetOutputMatrix使用。
平臺需求
Windows 10 (XAudio2.9) ;Windows 8,Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)規格需求
目標平台 | Windows |
標頭 | xaudio2.h |