IXAudio2Voice::SetEffectChain 方法 (xaudio2.h)

替换语音的效果链。

语法

\\HRESULT SetEffectChain(
  [in, optional] const XAUDIO2_EFFECT_CHAIN *pEffectChain
);

参数

[in, optional] pEffectChain

指向描述要使用的新效果链 的XAUDIO2_EFFECT_CHAIN 结构的指针。 如果传递 NULL,则删除当前效果链。

注意 如果 pEffectChain 为非 NULL,则它指向 的XAUDIO2_EFFECT_CHAIN 结构必须至少指定一种效果。
 

返回值

如果成功,则返回S_OK;否则为错误代码。

有关 XAudio2 特定错误代码 的说明,请参阅 XAudio2 错误代码。

注解

语音效果链允许的输出通道数在语音创建时被锁定。 如果使用效果链创建语音,则传递给 SetEffectChain 的任何新效果链都必须具有与原始效果链相同的输入和输出通道数。 如果创建没有效果链的语音,则为效果链允许的输出通道数将默认为语音的输入通道数。 如果效果链创建的任何部分失败,则不应用任何部分。

将效果附加到 XAudio2 语音后,XAudio2 将控制该效果,客户端不应对其进行任何进一步调用。 确保此操作的最简单方法是释放所有指向效果的指针。

从回调 ((即 IXAudio2EngineCallbackIXAudio2VoiceCallback) )调用 SetEffectChain 无效。 如果在回调中调用 SetEffectChain ,它将返回XAUDIO2_E_INVALID_CALL。

SetEffectChain 成功完成后,不再需要作为 pEffectChain 参数传入的XAUDIO2_EFFECT_CHAIN以及其中包含的任何XAUDIO2_EFFECT_DESCRIPTOR信息,并且可以在调用 SetEffectChain 后立即删除。

平台要求

Windows 8,Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)

要求

要求
目标平台 Windows
标头 xaudio2.h

另请参阅

如何:创建效果链

IXAudio2Voice

XAPO 概述