IChannelAudioVolume::SetChannelVolume 方法 (audioclient.h)

SetChannelVolume 方法设置音频会话中指定通道的音量级别。

语法

HRESULT SetChannelVolume(
  [in] UINT32      dwIndex,
  [in] const float fLevel,
  [in] LPCGUID     EventContext
);

参数

[in] dwIndex

通道号。 如果音频会话的流格式具有 N 个通道,则通道的编号从 0 到 N – 1。 若要获取通道数,请调用 IChannelAudioVolume::GetChannelCount 方法。

[in] fLevel

通道的音量级别。 有效卷级别介于 0.0 到 1.0 范围内。

[in] EventContext

指向事件上下文 GUID 的指针。 如果对此方法的调用生成 channel-volume-change 事件,会话管理器会将通知发送到已注册 IAudioSessionEvents 接口的所有客户端与会话管理器。 会话管理器包含每个通知的 EventContext 指针值。 收到通知后,客户端可以通过检查 EventContext 值来确定它还是另一个客户端是事件的源。 此方案取决于客户端为此参数选择一个在会话中的所有客户端中唯一的值。 如果调用方为此参数提供 NULL 指针,则客户端的通知方法将收到 NULL 上下文指针。

返回值

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

返回代码 说明
E_INVALIDARG
参数 dwIndex 设置为无效通道号,或者参数 fLevel 不在 0.0 到 1.0 的范围内。
AUDCLNT_E_DEVICE_INVALIDATED
音频终结点设备已拔出,或者音频硬件或关联的硬件资源已重新配置、禁用、删除或以其他方式不可用。
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows 音频服务未运行。

注解

此方法如果成功,将生成通道音量更改事件,而不考虑新通道音量级别的值是否与以前的通道音量级别不同。

要求

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

另请参阅

IAudioSessionEvents 接口

IChannelAudioVolume 接口

IChannelAudioVolume::GetChannelCount