Поделиться через


Как использовать голосовые подмиксы

В этом разделе показано, как вы можете настроить группы голосов для отправки их выходных данных в тот же субмикс-голос. Это позволяет одному изменению подмиксного голоса влиять на всю группу голосов.

  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

Как: Создать Основной Аудио Обработку Графа