IXAudio2Voice::SetChannelVolumes メソッド

チャンネルごとのボイスのボリューム レベルを設定します。

構文

HRESULT SetChannelVolumes(         UINT32 Channels,         const float *pVolumes,         UINT32 OperationSet = XAUDIO2_COMMIT_NOW)

パラメーター

  • Channels
    [in] ボイス内のチャンネル数です。
  • pVolumes
    [in] ボイス内の各チャンネルの新しいボリュームが含まれる配列です。この配列には、Channels 要素が必要です。ボリューム レベルの詳細については、「備考」を参照してください。
  • OperationSet
    [in] この呼び出しを遅延バッチの一部として指定します。詳細については、「XAudio2 操作セット」の概要を参照してください。

戻り値

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

解説 

SetChannelVolumes は、ボイスのチャンネルごとの出力レベルを制御して、ボイスの最終 SRC の直後かつボイスの送信前に適用されます。

マスター ボイスでは、チャンネルごとにボリュームを指定しないため、このメソッドは、ソース ボイスおよびサブミックス ボイスに対してのみ有効です。

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

注意

IXAudio2Voice::GetChannelVolumes は、常に、IXAudio2Voice::SetChannelVolumes によって最後に設定されたボリューム レベルを返します。ただし、これらの値は実際にはまだ適用されていない可能性があります。これらの値は、IXAudio2Voice::SetChannelVolumes 呼び出しの後 (または、IXAudio2Voice::SetChannelVolumes が遅延操作 ID を使用して呼び出された場合は、対応する IXAudio2::CommitChanges 呼び出しの後)、次にオーディオ エンジンが実行されたときに初めて適用されます。

要件

ヘッダー: xaudio2.h で宣言されています。

関連項目

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