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 将控制该效果,客户端不应对其进行任何进一步调用。 确保此操作的最简单方法是释放所有指向效果的指针。
从回调 ((即 IXAudio2EngineCallback 或 IXAudio2VoiceCallback) )调用 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 |