IAudioEndpointVolume::SetChannelVolumeLevelScalar 方法 (endpointvolume.h)

SetChannelVolumeLevelScalar 方法设置进入或离开音频终结点设备的音频流中指定通道的规范化音频锥度音量。

语法

HRESULT SetChannelVolumeLevelScalar(
  [in] UINT    nChannel,
  [in] float   fLevel,
  [in] LPCGUID pguidEventContext
);

参数

[in] nChannel

通道号。 如果音频流包含 n 个通道,则通道的编号从 0 到 n – 1。 若要获取通道数,请调用 IAudioEndpointVolume::GetChannelCount 方法。

[in] fLevel

卷级别。 音量级别表示为 0.0 到 1.0 范围内的规范化值。

[in] pguidEventContext

IAudioEndpointVolumeCallback::OnNotify 方法的上下文值。 此参数指向事件上下文 GUID。 如果 SetChannelVolumeLevelScalar 调用更改了终结点的卷级别,则已注册具有该终结点 的 IAudioEndpointVolumeCallback 接口的所有客户端都将收到通知。 在 OnNotify 方法的实现中,客户端可以检查事件上下文 GUID,以发现它还是另一个客户端是卷更改事件的源。 如果调用方为此参数提供 NULL 指针,则通知例程将接收上下文 GUID 值GUID_NULL。

返回值

如果该方法成功,则它会返回 S_OK。 如果方法失败,可能的返回代码包括但不限于下表中显示的值。

返回代码 说明
E_INVALIDARG
参数 nChannel 大于或等于流中的通道数;或参数 fLevel 不在 0.0 到 1.0 的范围内。
E_OUTOFMEMORY
内存不足。

注解

卷级别规范化为 0.0 到 1.0 的范围,其中 0.0 是最小音量级别,1.0 是最大音量级别。 在此范围内,规范化音量级别与信号振幅衰减的关系由非线性音频锥形曲线描述。 请注意,曲线的形状可能会在 Windows 的未来版本中更改。 有关音频锥形曲线的详细信息,请参阅 音频锥形音量控制

传递给此方法的规范化音量级别适用于表示音量控件在应用程序窗口和屏幕显示中的位置。

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 endpointvolume.h

另请参阅

IAudioEndpointVolume 接口

IAudioEndpointVolume::GetChannelCount

IAudioEndpointVolumeCallback 接口

IAudioEndpointVolumeCallback::OnNotify