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] という形式で指定されます。
たとえば、2 チャンネルのステレオ入力を 5.1 出力にレンダリングし、フロント チャネルに向かって重み付けするが、中心チャネルと低周波数チャネルを使用しない場合、マトリックスには次の表に示す値が含まれる場合があります。
出力 | 左入力 [配列インデックス] | 右入力 [配列インデックス] |
---|---|---|
Left | 1.0 [0] | 0.0 [1] |
Right | 0.0 [2] | 1.0 [3] |
フロント センター | 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 Volume and Pitch Control 」を参照してください。
X3DAudio 関数 X3DAudioCalculate は、サウンドの位置とリスナーの位置に基づいて、SetOutputMatrix で使用する出力マトリックスを生成できます。
プラットフォームの要件
Windows 10 (XAudio2.9);Windows 8、Windows Phone 8 (XAudio 2.8);DirectX SDK (XAudio 2.7)要件
対象プラットフォーム | Windows |
ヘッダー | xaudio2.h |