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 Hz)和XAUDIO2FX_REVERB_MAX_FRAMERATE(48,000 Hz)。
  • 输入和输出通道必须是以下组合之一。
    • Mono 输入和单声道输出
    • Mono 输入和 5.1 输出
    • 立体声输入和立体声输出
    • 立体声输入和 5.1 输出
混响 APO 在处理样本之间维护内部状态信息。 一次只能将 APO 的实例与一个音频数据源一起使用。 需要混响效果的多个语音都需要使用 XAudio2CreateReverb 创建单独的混响效果。

有关创建新效果以用于 XAudio2 的信息,请参阅 XAPO 概述

Windows操作系统
由于 XAudio2CreateReverb 在 Windows 上调用 CoCreateInstance,因此应用程序必须在调用 XAudio2CreateReverb 之前调用 CoInitializeEx 方法。 XAudio2Create 具有相同的要求,这意味着在调用 XAudio2CreateReverb 之前,通常会调用 CoInitializeEx

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 标头将 AudioReverb 类 GUID 定义为跨平台音频处理对象(XAPO)。

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

XAudio2CreateReverb 将此对象作为指向 ppApo 参数中 IUnknown 的指针的指针返回。 虽然可以从此 IUnknown 查询 IXAPO 和 IXAPOParameters 接口,但通常永远不会直接使用这些接口。 而是在创建语音以将其添加为效果链的一部分时使用它们。

混响使用通过 IXAudio2Voice::SetEffectParameters 访问的XAUDIO2FX_REVERB_PARAMETERS参数结构。

注释

  XAudio2CreateReverb 是 xaudio2fx.h 中的内联函数,调用 CreateAudioReverb ,如以下代码示例所示。

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

平台要求

Windows 10 (XAudio2.9):Windows 8、Windows Phone 8(XAudio 2.8):DirectX SDK (XAudio 2.7)

要求

要求 价值
目标平台 Windows操作系统
页眉 xaudio2fx.h
图书馆 Xaudio2.lib
DLL Windows.Media.Audio.dll

另请参阅

如何:创建效果链

IXAudio2Voice::SetEffectParameters

XAUDIO2FX_REVERB_PARAMETERS

XAudio2 函数