次の方法で共有


DeviceTopology API

Microsoft の高品質音声キャプチャ DMO サンプル を参照してください。

DeviceTopology API は、クライアント アプリケーションにオーディオ レンダリングの機能ハードウェア トポロジを走査し、デバイスをキャプチャする機能を提供します。 DeviceTopology API のインターフェイスとメソッドを使用して、クライアントは、オーディオ エンドポイント デバイス との間のデータ パスに沿った機能サブユニット (ボリューム制御など)検出できます。 クライアントは、オーディオ アダプター デバイスとオーディオ エンドポイント デバイスの両方の内部トポロジを走査し、1 つのデバイスを別のデバイスにリンクする接続をステップ実行できます。 詳細については、「デバイス トポロジの」を参照してください。

ヘッダー ファイル Devicetopology.h は、DeviceTopology API のインターフェイスを定義します。

DeviceTopology API インターフェイスにアクセスするには、まず、次の手順に従って、クライアントがオーディオ エンドポイント デバイスの IDeviceTopology インターフェイスへの参照を取得します。

  1. IMMDevice Interfaceで説明されているいずれかの手法を使用して、オーディオ エンドポイント デバイスの IMMDevice インターフェイスへの参照を取得します。
  2. パラメーター iid を REFIID IID_IDeviceTopology に設定して、IMMDevice::Activate メソッド 呼び出します。

クライアントは、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 パーツ (コネクタまたはサブユニット) の状態が変更されたときに通知を提供します。

 

デバイス トポロジ

プログラミング リファレンス