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

另请参阅

如何:更改语音音量

IXAudio2Voice