IXAudio2Voice::SetEffectParameters 方法 (xaudio2.h)

设置语音效果链中给定效果的参数。

语法

\\HRESULT SetEffectParameters(
  [in] UINT32     EffectIndex,
  [in] const void *pParameters,
  [in] UINT32     ParametersByteSize,
  [in] UINT32     OperationSet
);

参数

[in] EffectIndex

语音效果链中效果的从零开始的索引。

[in] pParameters

返回特定于效果的参数的当前值。

[in] ParametersByteSize

pParameters 数组的大小(以字节为单位)。

[in] OperationSet

将此调用标识为延迟批处理的一部分。 有关详细信息,请参阅 XAudio2 操作集 概述。

返回值

如果成功,则返回S_OK;否则为错误代码。 有关错误代码的说明,请参阅 XAudio2 错误代码。

如果效果不支持泛型参数控件接口,则失败并E_NOTIMPL。

注解

使用的特定效果决定了 pParameters 缓冲区的有效大小和格式。 如果 pParameters 无效,或者 ParametersByteSize 不完全是效果预期的大小,则调用将失败。 客户端必须注意将 SetEffectParameters 调用定向到正确的效果。 如果此调用定向到恰好接受相同参数块大小的不同效果,则参数的解释将不同。 这可能会导致意外的结果。

不能立即释放 pParameters 指向的内存,因为 XAudio2 稍后在实际应用于效果的参数时需要引用它。 如果一个音频处理过程XAUDIO2_COMMIT_NOW OperationSet 参数,则会发生这种情况。 否则,参数将在稍后使用同一 OperationSet 参数调用 IXAudio2::CommitChanges 函数后的第一个处理阶段应用于效果。

具有 XAUDIO2_COMMIT_NOW OperationSet 的 XAudio2 回调调用时,SetEffectParameters 会立即生效。

注意IXAudio2Voice::GetEffectParameters 始终返回效果的实际当前参数。 但是,这些参数可能与最近调用 IXAudio2Voice::SetEffectParameters 设置的参数不匹配。 只有在 IXAudio2Voice::SetEffectParameters 调用 IXAudio2Voice::SetEffectParameters 调用 (之后或相应的 IXAudio2::CommitChanges 调用之后,如果 IXAudio2Voice::SetEffectParameters 调用了 IXAudio2Voice::SetEffectParameters 时) ,实际参数才会更改。
 

平台要求

Windows 10 (XAudio2.9) ;Windows 8,Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)

要求

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

另请参阅

如何:创建效果链

IXAPOParameters::SetParameters

IXAudio2Voice

XAPO 概述