共用方式為


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 提供硬體磁碟區控件的存取權。
I 連線 or 表示元件之間的連接點。
IControlInterface 表示元件上的控制項介面(子單位或連接器)。
IDeviceSpecificProperty 表示連接器或子單位的裝置特定屬性。
IDeviceTopology 提供音訊裝置拓撲的存取權。
IKsFormatSupport 提供音訊裝置與系統記憶體之間軟體設定 I/O 連線(通常是 DMA 通道)所支援的音訊數據格式相關信息。
IKsJackDescription 提供插孔或內部連接器的相關信息,這些連接器可在音訊適配卡上的裝置與外部或內部端點裝置之間提供實體連線(例如麥克風或 CD 播放器)。
IPart 表示裝置拓撲的元件(連接器或子單位)。
IPartsList 代表元件清單(連接器和子單位)。
IPerChannelDbLevel 表示泛型子單位控件介面,該介面會針對音訊數據流中的音訊數據流或音訊串流中的頻率頻帶,提供音量層級的個別通道控制。
ISubunit 表示位於用戶端與音訊端點裝置之間數據路徑的硬體子單位(例如音量層級控件)。

 

需要連接器和子單位中控制變更事件的通知的 DeviceTopology API 用戶端應該實作下列介面。

介面 描述
IControlChangeNotify 當元件的狀態(連接器或子單位)變更時,提供通知。

 

裝置拓撲

程式設計參考