IChannelAudioVolume 接口 (audioclient.h)

IChannelAudioVolume 接口使客户端能够控制和监视流所属的音频会话中所有声道的音量级别。 这是客户端在调用 IAudioClient::Initialize 方法期间将流分配到的会话。 客户端通过调用 IAudioClient::GetService 方法(参数 riid 设置为 REFIID IID_IChannelAudioVolume)来获取对流对象上的 IChannelAudioVolume 接口的引用。

会话子混合中任何声道的有效音量级别(如演讲者所听到)是以下四个音量级别因素的乘积:

  • 会话中流的每通道音量级别,客户端可以通过 IAudioStreamVolume 接口中的方法控制这些级别。
  • 会话的每通道音量级别,客户端可以通过 IChannelAudioVolume 接口中的方法控制该级别。
  • 会话的主卷级别,客户端可以通过 ISimpleAudioVolume 接口中的方法控制该级别。
  • 会话的基于策略的卷级别,当全局混合发生更改时,系统会动态分配给会话。
上述列表中的四个音量级别因子中的每一个都是 0.0 到 1.0 范围内的值,其中 0.0 表示静音,1.0 表示完整音量 (无衰减) 。 有效音量级别也是 0.0 到 1.0 范围内的值。

典型的音频应用程序不会修改会话的音量级别。 相反,它们依赖于用户通过 Sndvol 程序设置这些音量级别。 Sndvol 仅修改会话的主卷级别。 默认情况下,会话管理器在初始激活会话时将每通道音量级别设置为 1.0。 在计算机重启后,客户端的后续每通道卷更改是永久性的。

释放 IChannelAudioVolume 接口实例时,客户端必须从调用创建对象的 IAudioClient::GetService 的同一线程调用接口的 Release 方法。

IChannelAudioVolume 接口控制音频会话中的通道音量。 音频会话是共享模式流的集合。 此接口不适用于独占模式流。 有关独占模式流的卷控件的信息,请参阅 EndpointVolume API

继承

IChannelAudioVolume 接口继承自 IUnknown 接口。 IChannelAudioVolume 还具有以下类型的成员:

方法

IChannelAudioVolume 接口包含以下方法。

 
IChannelAudioVolume::GetAllVolumes

GetAllVolumes 方法检索音频会话中所有声道的音量级别。
IChannelAudioVolume::GetChannelCount

GetChannelCount 方法检索音频会话的流格式的通道数。
IChannelAudioVolume::GetChannelVolume

GetChannelVolume 方法检索音频会话中指定声道的音量级别。
IChannelAudioVolume::SetAllVolumes

SetAllVolumes 方法设置音频会话中所有声道的单个音量级别。
IChannelAudioVolume::SetChannelVolume

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

要求

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

另请参阅

核心音频接口

IAudioClient::GetService

IAudioClient::Initialize

IAudioStreamVolume 接口

ISimpleAudioVolume 接口

WASAPI