如何:使用提交语音

本主题演示如何设置语音组以将其输出发送到同一个子混合语音。 这样,对子混合语音的单个更改即可影响整个语音组。

  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 结构传递到创建的新源语音。

    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 编程指南

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