Compartilhar via


Função XAudio2CreateReverb (xaudio2fx.h)

Cria um novo objeto de processamento de áudio reverb (APO) e retorna um ponteiro para ele.

Sintaxe

HRESULT XAudio2CreateReverb(
  [in, out] IUnknown     **ppApo,
  [in]      UINT32 Flags DEFAULT
);

Parâmetros

[in, out] ppApo

Contém um ponteiro para o APO de reverb criado.

[in] DEFAULT

Sinalizadores que especificam o comportamento do APO. O valor desse parâmetro deve ser 0.

Valor retornado

Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

XAudio2CreateReverb cria um efeito executando o Reverb Digital de Princeton. A biblioteca de efeitos XAPO (XAPOFX) inclui um efeito reverb alternativo. Use CreateFX para criar esse efeito alternativo.

O APO reverb é compatível com as seguintes restrições:

  • Os dados de áudio de entrada devem ser FLOAT32.
  • A taxa de quadros deve estar dentro de XAUDIO2FX_REVERB_MIN_FRAMERATE (20.000 Hz) e XAUDIO2FX_REVERB_MAX_FRAMERATE (48.000 Hz).
  • Os canais de entrada e saída devem ser uma das combinações a seguir.
    • Entrada mono e saída mono
    • Entrada mono e saída 5.1
    • Entrada estéreo e saída estéreo
    • Entrada estéreo e saída 5.1
O APO reverb mantém informações de estado internas entre exemplos de processamento. Você só pode usar uma instância do APO com uma fonte de dados de áudio por vez. Várias vozes que exigem efeitos reverb precisariam criar um efeito reverb separado com XAudio2CreateReverb.

Para obter informações sobre como criar novos efeitos para uso com XAudio2, consulte a Visão geral do XAPO.

Windows
Como XAudio2CreateReverb chama CoCreateInstance no Windows, o aplicativo deve ter chamado o método CoInitializeEx antes de chamar XAudio2CreateReverb. XAudio2Create tem o mesmo requisito, o que significa que CoInitializeEx normalmente será chamado muito antes de XAudio2CreateReverb ser chamado.

Um padrão de chamada típico no Windows seria o seguinte:

#ifndef _XBOX
CoInitializeEx(NULL, COINIT_MULTITHREADED);
#endif
IXAudio2* pXAudio2 = NULL;
HRESULT hr;
if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
    return hr;
...
IUnknown * pReverbAPO;
XAudio2CreateReverb(&pReverbAPO);

 

O cabeçalho xaudio2fx.h define o GUID da classe AudioReverb como um XAPO (objeto de processamento de áudio multiplataforma).

class __declspec(uuid("C2633B16-471B-4498-B8C5-4F0959E2EC09")) AudioReverb;

XAudio2CreateReverb retorna esse objeto como um ponteiro para um ponteiro para IUnknown no parâmetro ppApo . Embora você possa consultar as interfaces IXAPO e IXAPOParameters desse IUnknown, normalmente você nunca usa essas interfaces diretamente. Em vez disso, você os usa quando cria uma voz para adicioná-las como parte da cadeia de efeitos.

O reverb usa a estrutura de parâmetros XAUDIO2FX_REVERB_PARAMETERS que você acessa por meio do IXAudio2Voice::SetEffectParameters.

ObservaçãoXAudio2CreateReverb é uma função embutida em xaudio2fx.h que chama CreateAudioReverb: sintaxe '''

XAUDIO2FX_STDAPI CreateAudioReverb(Outptr IUnknown** ppApo); __inline HRESULT XAudio2CreateReverb(Outptr IUnknown** ppApo, UINT32 /Flags/ DEFAULT(0)) { return CreateAudioReverb(ppApo); }


</div>
<div> </div>
<h3><a id="Platform_Requirements"></a><a id="platform_requirements"></a><a id="PLATFORM_REQUIREMENTS"></a>Platform Requirements</h3>
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)

## Requirements
| Requirement | Value |
| ---- |:---- |
| **Target Platform** | Windows |
| **Header** | xaudio2fx.h |
| **Library** | Xaudio2.lib |
| **DLL** | Windows.Media.Audio.dll |

## See also

<a href="/windows/desktop/xaudio2/how-to--create-an-effect-chain">How to: Create an Effect Chain</a>



<a href="/windows/desktop/api/xaudio2/nf-xaudio2-ixaudio2voice-seteffectparameters">IXAudio2Voice::SetEffectParameters</a>



<a href="/windows/desktop/api/xaudio2fx/ns-xaudio2fx-xaudio2fx_reverb_parameters">XAUDIO2FX_REVERB_PARAMETERS</a>



<a href="/windows/desktop/xaudio2/functions">XAudio2 Functions</a>