次の方法で共有


方法 : サブミックス ボイスの使用

ここでは、ボイスのグループがその出力を同じサブミックス ボイスに送信するように設定する方法について説明します。これにより、サブミックス ボイスを 1 回変更するだけで、ボイスのグループ全体に反映できるようになります。

ボイスのグループの出力を単一のサブミックス ボイスに設定するには

  1. すべてのゲームのサウンド エフェクト ボイスの送信先となるサブミックス ボイスを作成します。

    IXAudio2SubmixVoice * pSFXSubmixVoice;
    pXAudio2->CreateSubmixVoice(&pSFXSubmixVoice,1,44100,0,0,0,0);
    
  2. サブミックス ボイスへの参照が含まれている XAUDIO2_VOICE_SENDS 構造体を作成します。

    XAUDIO2_VOICE_SENDS SFXSendList;
    SFXSendList.OutputCount = 1;
    SFXSendList.pOutputVoices = (IXAudio2Voice **)&pSFXSubmixVoice;
    
  3. 新しいソース ボイスを作成したら、それを XAUDIO2_VOICE_SENDS 構造体に渡します。

    IXAudio2SourceVoice* pSFXSourceVoice;
    if( FAILED(hr = pXaudio2->CreateSourceVoice( &pSFXSourceVoice, (WAVEFORMATEX*)&wfx,
        0, XAUDIO2_DEFAULT_FREQ_RATIO, pCallback, pSFXSendList, NULL ) ) )
        return hr;
    
  4. サブミックス ボイスを調整して、すべてのサウンド エフェクト ボイスに変更内容を適用します。

    この例では、SetVolume 関数を使用してサブミックス ボイスのボリュームを変更することで、すべてのボイスのボリュームを効率的に変更します。

    pSFXSubmixVoice->SetVolume(0.1);
    

関連トピック