共用方式為


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 指標。

注意 如果語音傳送至單一目標語音,則指定 Null 會導致 SetOutputMatrix 在該目標語音上運作。
 

[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]
 
注意 左右輸入完全對應至輸出的左和右通道;80% 的左和右輸入會對應到左和右通道。
 
如需磁片區層級的詳細資訊,請參閱。

[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使用。

注意IXAudio2Voice::GetOutputMatrix 一律會傳回最近由 IXAudio2Voice::SetOutputMatrix 設定的層級。 不過,它們可能尚未生效:只有當音訊引擎在 IXAudio2Voice::SetOutputMatrix 呼叫 (或對應的 IXAudio2::CommitChanges 呼叫之後才會生效,如果 IXAudio2Voice::SetOutputMatrix 是以延遲的作業識別碼呼叫) 。
 

平臺需求

Windows 10 (XAudio2.9) ;Windows 8,Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)

規格需求

   
目標平台 Windows
標頭 xaudio2.h

另請參閱

如何:變更語音音量

IXAudio2Voice