DeviceTopology API

请参阅 Microsoft高质量的语音捕获 DMO 示例

DeviceTopology API 为客户端应用程序提供了遍历音频呈现和捕获设备的功能硬件拓扑的功能。 通过 DeviceTopology API 中的接口和方法,客户端可以发现位于 音频终结点设备的数据路径(例如音量控制)的功能子单元(例如音量控制)。 客户端可以遍历音频适配器设备和音频终结点设备的内部拓扑,并跨将一台设备链接到另一台设备的连接单步执行。 有关详细信息,请参阅 设备拓扑

头文件 Devicetopology.h 定义 DeviceTopology API 中的接口。

若要访问 DeviceTopology API 接口,客户端首先通过以下步骤获取对音频终结点设备的 IDeviceTopology 接口的引用:

  1. 通过使用 IMMDevice 接口中所述的技术之一,获取对音频终结点设备的 IMMDevice 接口的引用。
  2. 调用 IMMDevice::Activate 方法,参数 iid 设置为 REFIID IID_IDeviceTopology。

客户端可以通过调用 IDeviceTopology 接口中的方法来获取对 DeviceTopology API 中其他接口的引用。

DeviceTopology API 实现以下接口。

接口 描述
IAudioAutoGainControl 提供对硬件自动增益控制(AGC)的访问。
IAudioBass 提供对硬件低音级控件的访问权限。
IAudioChannelConfig 提供对硬件通道配置控制的访问权限。
IAudioInputSelector 提供对硬件多路复用器控件(输入选择器)的访问。
IAudioLoudness 提供对“响度”补偿控制的访问权限。
IAudioMidrange 提供对硬件中级控件的访问权限。
IAudioMute 提供对硬件静音控件的访问权限。
IAudioOutputSelector 提供对硬件非复数器控件(输出选择器)的访问。
IAudioPeakMeter 提供对硬件峰值计量控件的访问。
IAudioTreble 提供对硬件三级控制的访问权限。
IAudioVolumeLevel 提供对硬件卷控制的访问权限。
IConnector 表示组件之间的连接点。
IControlInterface 表示部件(子单位或连接器)上的控件接口。
IDeviceSpecificProperty 表示连接器或子单元的设备特定属性。
IDeviceTopology 提供对音频设备的拓扑的访问权限。
IKsFormatSupport 提供有关音频设备和系统内存之间软件配置的 I/O 连接(通常是 DMA 通道)支持的音频数据格式的信息。
IKsJackDescription 提供有关在音频适配器上的设备与外部或内部终结点设备(例如麦克风或 CD 播放器)之间提供物理连接的插孔或内部连接器的信息。
IPart 表示设备拓扑的一部分(连接器或子单元)。
IPartsList 表示部件(连接器和子单位)的列表。
IPerChannelDbLevel 表示一个泛型子单元控制接口,该接口提供对音频流或音频流中频率带的音量级别(以分贝为单位)的按通道控制。
ISubunit 表示位于客户端和音频终结点设备之间的数据路径的硬件子单元(例如卷级控件)。

 

需要通知连接器和子单元中的控制更改事件的 DeviceTopology API 客户端应实现以下接口。

接口 描述
IControlChangeNotify 在部件(连接器或子单位)的状态发生更改时提供通知。

 

设备拓扑

编程参考