方法 : サブミックス ボイスの使用
ここでは、ボイスのグループがその出力を同じサブミックス ボイスに送信するように設定する方法について説明します。これにより、サブミックス ボイスを 1 回変更するだけで、ボイスのグループ全体に反映できるようになります。
ボイスのグループの出力を単一のサブミックス ボイスに設定するには
すべてのゲームのサウンド エフェクト ボイスの送信先となるサブミックス ボイスを作成します。
IXAudio2SubmixVoice * pSFXSubmixVoice; pXAudio2->CreateSubmixVoice(&pSFXSubmixVoice,1,44100,0,0,0,0);
サブミックス ボイスへの参照が含まれている XAUDIO2_VOICE_SENDS 構造体を作成します。
XAUDIO2_VOICE_SENDS SFXSendList; SFXSendList.OutputCount = 1; SFXSendList.pOutputVoices = (IXAudio2Voice **)&pSFXSubmixVoice;
新しいソース ボイスを作成したら、それを XAUDIO2_VOICE_SENDS 構造体に渡します。
IXAudio2SourceVoice* pSFXSourceVoice; if( FAILED(hr = pXaudio2->CreateSourceVoice( &pSFXSourceVoice, (WAVEFORMATEX*)&wfx, 0, XAUDIO2_DEFAULT_FREQ_RATIO, pCallback, pSFXSendList, NULL ) ) ) return hr;
サブミックス ボイスを調整して、すべてのサウンド エフェクト ボイスに変更内容を適用します。
この例では、SetVolume 関数を使用してサブミックス ボイスのボリュームを変更することで、すべてのボイスのボリュームを効率的に変更します。
pSFXSubmixVoice->SetVolume(0.1);
関連トピック
- XAudio2 の概要
XAudio2 の概要を説明します。
- 方法 : 基本的なオーディオ処理グラフの作成
XAudio2 でサウンドを再生するために必要となる最小限のセットアップについて説明します。