DeviceTopology API
DeviceTopology API 为客户端应用程序提供了遍历音频呈现和捕获设备的功能硬件拓扑的功能。 通过 DeviceTopology API 中的接口和方法,客户端可以发现位于往返于音频终结点设备的数据路径上的功能子单元(例如,音量控件)。 客户端可以遍历音频适配器设备和音频终结点设备的内部拓扑,并跨过将一个设备连接到另一个设备的连接。 有关详细信息,请参阅设备拓扑。
头文件 Devicetopology.h 定义了 DeviceTopology API 中的接口。
要访问 DeviceTopology API 接口,客户端首先要通过以下步骤获取音频终结点设备的 IDeviceTopology 接口引用:
- 使用 IMMDevice 接口中描述的技术之一,获取音频终结点设备的 IMMDevice 接口引用。
- 调用 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 | 当部件(连接器或子单元)的状态发生变化时提供通知。 |
相关主题