软件音量控制支持

在 Windows Vista 及更高版本中,为音频硬件提供软件音量支持,这些硬件不包括和调节与关联的物理音量控制。

下图显示了 Windows 软件音量支持的简化表示形式。

Diagram showing simplified representation of Windows software volume support with two audio data paths.

该图显示了两个单独的音频数据路径。 一个是当存在放大器时,另一个是使用 Windows APO 软件音量控制时。 如果存在一个放大器,驱动程序发布 KSPROPERTY_AUDIO_VOLUMELEVEL。 如果音频驱动程序未指示它支持 KSPROPERTY_AUDIO_VOLUMELEVEL,Windows 音频引擎将创建软件音量控制 APO。

在典型的电脑上,这些数据路径中只有一条会出现,因为计算机中通常会有一组音频组件。 此处显示这两条路径是为了便于说明。

IAudioEndpointVolume 接口表示音频流中音频终结点设备上的音量控制。

如果存在蓝牙或 USB 音频,将单独控制其音量控制。

存在放大器的数据路径

当客户端应用程序在配置中调用 IAudioEndpointVolume 接口时,其中存在一个调节器和物理音量控制,音频驱动程序会在拓扑筛选器中公开 KSNODETYPE_VOLUME 节点。 音量节点的存在使 IAudioEndpointVolume 知道音频信号的音量级别将由硬件修改。

不存在放大器的数据路径

当不存在任何伸缩器时,IAudioEndpointVolume 与音频引擎配合,以初始化 Windows 软件音量支持 APO。

由于没有要建模的物理音量控制,因此不会在拓扑筛选器中公开 KSNODETYPE_VOLUME 节点。 音量衰减和增益由 APO 软件音量支持组件执行。

有关不同版本的 Windows 中的音量范围和默认音量级别的信息,请参阅默认音频音量设置