次の方法で共有


IXAudio2Voice::SetOutputMatrix

ボイスの最終出力の各チャンネルのボリューム レベルを設定します。これらのチャンネルは、指定されたデスティネーション ボイスの入力チャンネルにマップされます。

HRESULT 
SetOutputMatrix(
  IXAudio2Voice *pDestinationVoice,
  UINT32 SourceChannels,
  UINT32 DestinationChannels,
  const float *pLevelMatrix,
  UINT32 OperationSet = XAUDIO2_COMMIT_NOW
);

パラメータ

  • pDestinationVoice
    ボリューム レベルを設定するデスティネーション IXAudio2Voice へのポインターです。     ボイス (ソースまたはサブミックス) を既定のマスター ボイスに送信する場合、マスター ボイスは NULL pSendList で作成されているので、pDestinationVoice を NULL に設定すると、既定の送信処理で動作します。

  • SourceChannels
    ボイスの出力チャンネル数を確認します。これは、チェーン内の最後のエフェクトによって生成されるチャンネルの数です。

  • DestinationChannels
    デスティネーション ボイスの入力チャンネル数を確認します。

  • pLevelMatrix
    デスティネーション ボイスに送信される [SourceChannels×DestinationChannels] ボリューム レベルの配列。ソース チャンネル S からデスティネーション チャンネル D に送信されるレベルは、pLevelMatrix[SourceChannels×D+S] の形式で指定されます。 たとえば、2 チャンネル ステレオ入力を、加重が前方チャンネルにあって、中心および低周波数チャンネルにはない 5.1 出力にレンダリングすると、行列の値は次の表に示すようになります。 左と右の入力が、出力の左と右のチャンネルに完全にマップされています。左と右の入力の 80% が、後方の左と右のチャンネルにマップされています。 ボリューム レベルの詳細については、「備考」を参照してください。

    出力左入力右入力
    [左]1.00.0
    [右]0.01.0
    前方中央0.00.0
    LFE0.00.0
    後方左0.80.0
    後方右0.00.8
  • OperationSet
    この呼び出しを遅延バッチの一部として指定します。詳細については、「XAudio2 操作セット」の概要を参照してください。

戻り値

正常に実行された場合は S_OK を返し、失敗した場合はエラー コードを返します。エラー コードの説明については、「XAudio2 エラー コード」を参照してください。

解説 

マスター ボイスは、マトリクス ミックスなしでデバイスに直接書き込むため、このメソッドは、ソース ボイスおよびサブミックス ボイスの場合にのみ有効です。

ボリューム レベルは、-224 ~ 224 の浮動小数点振幅逓倍として表現され、最大ゲインは 144.5 dB です。ボリューム レベル 1.0 は減衰またはゲインがないことを意味し、0 は無音を意味します。負のレベルは、オーディオのフェーズを反転させるために使用できます。ボリューム コントロールの詳細については、「XAudio2 のボリュームおよびピッチ コントロール」を参照してください。

    IXAudio2Voice::SetOutputMatrix の呼び出しによって出力マトリックスを変更した直後に IXAudio2Voice::GetOutputMatrix を呼び出すと、新しい値が返されますが、次にオーディオ エンジンを実行するまで変更が反映されない場合があります。これは、パラメーターが非同期的に設定されるためです。

要件

ヘッダー: Xaudio2.h 宣言

関連項目

IXAudio2Voice, 方法 : ボイス ボリュームの変更