创建一个新的混响音频处理对象(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 输出
有关创建新效果以用于 XAudio2 的信息,请参阅 XAPO 概述。
| Windows操作系统 |
|---|
|
由于 XAudio2CreateReverb 在 Windows 上调用 CoCreateInstance,因此应用程序必须在调用 XAudio2CreateReverb 之前调用 CoInitializeEx 方法。
XAudio2Create 具有相同的要求,这意味着在调用 XAudio2CreateReverb 之前,通常会调用 CoInitializeEx。
Windows 上的典型调用模式如下所示:
|
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 |