Compartilhar via


Como: Usar vozes de submixagem

Este tópico mostra como você pode definir grupos de vozes para enviar sua saída para a mesma voz de submixagem. Isso permite que uma única alteração em uma voz de submixagem afete um grupo inteiro de vozes.

  1. Crie uma voz de submixagem para a qual todas as vozes de efeito sonoro do jogo serão enviadas.

    IXAudio2SubmixVoice * pSFXSubmixVoice;
    pXAudio2->CreateSubmixVoice(&pSFXSubmixVoice,1,44100,0,0,0,0);
    
  2. Crie uma estrutura XAUDIO2_VOICE_SENDS que contenha uma referência à voz do submixagem.

    XAUDIO2_SEND_DESCRIPTOR SFXSend = {0, pSFXSubmixVoice};
    XAUDIO2_VOICE_SENDS SFXSendList = {1, &SFXSend};
    
  3. Passe a estrutura XAUDIO2_VOICE_SENDS para novas vozes de origem conforme elas são criadas.

    IXAudio2SourceVoice* pSFXSourceVoice;
    if( FAILED(hr = pXaudio2->CreateSourceVoice( &pSFXSourceVoice, (WAVEFORMATEX*)&wfx,
        0, XAUDIO2_DEFAULT_FREQ_RATIO, pCallback, pSFXSendList, NULL ) ) )
        return hr;
    
  4. Aplique alterações a todas as vozes de efeito sonoro ajustando a voz de submixagem.

    Neste exemplo, alterar o volume da voz de submixagem com a função SetVolume altera efetivamente o volume de todas as vozes que são geradas para ela.

    pSFXSubmixVoice->SetVolume(0.1);
    

Vozes

Guia de Programação em XAudio2

Como: Compilar um gráfico de processamento de áudio básico