IXAudio2Voice::SetChannelVolumes 方法 (xaudio2.h)
为每个通道设置语音的音量级别。
语法
\\HRESULT SetChannelVolumes(
[in] UINT32 Channels,
[in] const float *pVolumes,
[in] UINT32 OperationSet
);
参数
[in] Channels
语音中的通道数。
[in] pVolumes
包含语音中每个通道的新卷的数组。 数组必须具有 Channels 元素。 有关卷级别的详细信息,请参阅“备注”。
[in] OperationSet
将此调用标识为延迟批处理的一部分。 有关详细信息,请参阅 XAudio2 操作集 概述。
返回值
如果成功,则返回S_OK,否则返回错误代码。 有关 XAudio2 特定错误代码的说明,请参阅 XAudio2 错误代码。
注解
SetChannelVolumes 控制语音的每声道输出级别,在语音的最终 SRC 之后和发送之前应用。
此方法仅对源语音和子混合语音有效,因为主语音不指定每个通道的音量。
音量级别表示为 -XAUDIO2_MAX_VOLUME_LEVEL 和 XAUDIO2_MAX_VOLUME_LEVEL (-2²⁴ 到 2²⁴) 之间的浮点振幅乘数,最大增益为 144.5 dB。 音量为 1 表示没有衰减或增益,0 表示静音。 负级别可用于反转音频的相位。 有关音量控制的其他信息,请参阅 XAudio2 音量和音调 控制。
注意IXAudio2Voice::GetChannelVolumes 始终返回 IXAudio2Voice::SetChannelVolumes 最近设置的卷级别。 但是,这些值可能实际上尚未生效:只有在 IXAudio2Voice::SetChannelVolumes 调用 IXAudio2Voice::SetChannelVolumes 调用 (之后或在相应的 IXAudio2::CommitChanges 调用之后(如果 IXAudio2Voice::SetChannelVolumes 是使用延迟操作 ID) 调用)时,它们才会生效。
平台要求
Windows 10 (XAudio2.9) ;Windows 8,Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | xaudio2.h |