如何:使用提交语音

本主题介绍如何设置语音组以将其输出发送到同一子混合语音。 这允许对子混合语音进行单个更改,以影响整个语音组。

  1. 创建一个 子混合语音 ,游戏的所有声音效果语音都将向其发送。

    IXAudio2SubmixVoice * pSFXSubmixVoice;
    pXAudio2->CreateSubmixVoice(&pSFXSubmixVoice,1,44100,0,0,0,0);
    
  2. 创建包含对子混合语音的引用 的XAUDIO2_VOICE_SENDS 结构。

    XAUDIO2_SEND_DESCRIPTOR SFXSend = {0, pSFXSubmixVoice};
    XAUDIO2_VOICE_SENDS SFXSendList = {1, &SFXSend};
    
  3. 创建XAUDIO2_VOICE_SENDS结构时,将 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);
    

语音

XAudio2 编程指南

如何:构建基本的音频处理图