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 当部件(连接器或子单元)的状态发生变化时提供通知。

 

设备拓扑

编程参考