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


Функция XAudio2CreateReverb (xaudio2fx.h)

Создает новый объект реверберации аудиообъекта (APO) и возвращает указатель на него.

Синтаксис

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

Параметры

[in, out] ppApo

Содержит указатель на созданный объект APO реверберации.

[in] DEFAULT

Флаги, указывающие поведение объекта APO. Значение этого параметра должно быть равно 0.

Возвращаемое значение

Если эта функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

XAudio2CreateReverb создает эффект выполнения Принстонского цифрового реверберации. Библиотека эффектов XAPO (XAPOFX) включает альтернативный эффект реверберации. Используйте CreateFX для создания этого альтернативного эффекта.

Объект реверберации APO поддерживает следующие ограничения:

  • Входные звуковые данные должны быть FLOAT32.
  • Частота кадров должна быть в пределах XAUDIO2FX_REVERB_MIN_FRAMERATE (20 000 Гц) и XAUDIO2FX_REVERB_MAX_FRAMERATE (48 000 Гц).
  • Входной и выходной каналы должны быть одним из следующих сочетаний.
    • Моно входные и моно выходные данные
    • Моно входные и выходные данные 5.1
    • Стереовходы и стерео выходные данные
    • Стереовход и выход 5.1
APO реверберации сохраняет сведения о внутреннем состоянии между примерами обработки. Одновременно можно использовать экземпляр APO только с одним источником звуковых данных. Для нескольких голосов, требующих эффектов реверберации, необходимо создать отдельный эффект реверберации с помощью XAudio2CreateReverb.

Сведения о создании новых эффектов для использования с XAudio2 см. в обзоре XAPO.

Windows
Так как XAudio2CreateReverb вызывает CoCreateInstance в Windows, приложение должно вызвать метод CoInitializeEx перед вызовом XAudio2CreateReverb. XAudio2Create имеет то же требование, что означает, что CoInitializeEx обычно вызывается задолго до вызова XAudio2CreateReverb .

Типичный шаблон вызова в Windows выглядит следующим образом:

#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);

 

Заголовок xaudio2fx.h определяет GUID класса AudioReverb как кроссплатформенный объект обработки звука (XAPO).

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

XAudio2CreateReverb возвращает этот объект в качестве указателя на IUnknown в параметре ppApo . Хотя вы можете запрашивать интерфейсы IXAPO и IXAPOParameters из этого IUnknown, эти интерфейсы обычно никогда не используются напрямую. Вместо этого вы используете их при создании голоса, чтобы добавить их как часть цепочки эффектов.

Реверберация использует структуру XAUDIO2FX_REVERB_PARAMETERS параметров, доступ к которым осуществляется через IXAudio2Voice::SetEffectParameters.

ПримечаниеXAudio2CreateReverb — это встроенная функция в xaudio2fx.h, которая вызывает синтаксис CreateAudioReverb: '''

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>