DeviceTopology-API
Sehen Sie sich das DMO-Beispiel für die Microsoft-Sprachaufnahme mit hoher Qualitätan.
Die DeviceTopology-API bietet Clientanwendungen die Möglichkeit, die funktionalen Hardwaretopologien von Audiorendering- und Aufnahmegeräten zu durchlaufen. Über die Schnittstellen und Methoden in der DeviceTopology-API können Clients die funktionalen Untereinheiten (z. B. Volume control) ermitteln, die entlang der Datenpfade liegen, die zu und von Audioendpunktgeräten. Clients können die internen Topologien von Audioadaptergeräten und Audioendpunktgeräten durchlaufen und über die Verbindungen hinweg führen, die ein Gerät mit einem anderen verbinden. Weitere Informationen finden Sie unter Gerätetopologien.
Die Headerdatei Devicetopology.h definiert die Schnittstellen in der DeviceTopology-API.
Um auf die DeviceTopology-API-Schnittstellen zuzugreifen, ruft ein Client zunächst einen Verweis auf die IDeviceTopology Schnittstelle für ein Audioendpunktgerät ab, indem Sie die folgenden Schritte ausführen:
- Rufen Sie mithilfe einer der in IMMDevice Interfacebeschriebenen Techniken einen Verweis auf die IMMDevice--Schnittstelle für ein Audioendpunktgerät ab.
- Rufen Sie die IMMDevice::Activate-Methode auf, wobei parameter iid auf REFIID- IID_IDeviceTopology festgelegt ist.
Der Client kann Verweise auf die anderen Schnittstellen in der DeviceTopology-API abrufen, indem die Methoden in der IDeviceTopology--Schnittstelle aufgerufen werden.
Die DeviceTopology-API implementiert die folgenden Schnittstellen.
Schnittstelle | Beschreibung |
---|---|
IAudioAutoGainControl | Bietet Zugriff auf eine Hardware-automatische Verstärkungskontrolle (AGC). |
IAudioBass- | Bietet Zugriff auf ein Hardware-Bass-Level-Steuerelement. |
IAudioChannelConfig | Bietet Zugriff auf ein Hardwarekanalkonfigurationssteuerelement. |
IAudioInputSelector- | Bietet Zugriff auf ein Hardware-Multiplexer-Steuerelement (Eingabeauswahl). |
IAudioLoudness | Ermöglicht den Zugriff auf eine "Lautheit"-Ausgleichssteuerung. |
IAudioMidrange | Bietet Zugriff auf ein Hardware-Midrange-Level-Steuerelement. |
IAudioMute- | Bietet Zugriff auf ein Hardware-Stummschaltungssteuerelement. |
IAudioOutputSelector- | Bietet Zugriff auf ein Hardwaredemultiplexer-Steuerelement (Ausgabeauswahl). |
IAudioPeakMeter | Bietet Zugriff auf ein Hardware-Spitzenzähler-Steuerelement. |
IAudioTreble- | Ermöglicht den Zugriff auf ein Hardware-Steuerelement auf dreifacher Ebene. |
IAudioVolumeLevel- | Bietet Zugriff auf eine Hardwarelautstärkesteuerung. |
IConnector- | Stellt einen Verbindungspunkt zwischen Komponenten dar. |
IControlInterface- | Stellt eine Steuerelementschnittstelle auf einem Teil (Untereinheit oder Verbinder) dar. |
IDeviceSpecificProperty | Stellt eine gerätespezifische Eigenschaft eines Verbinders oder einer Untereinheit dar. |
IDeviceTopology- | Bietet Zugriff auf die Topologie eines Audiogeräts. |
IKsFormatSupport- | Stellt Informationen zu den Audiodatenformaten bereit, die von einer softwarekonfigurierten E/A-Verbindung (in der Regel ein DMA-Kanal) zwischen dem Audiogerät und dem Systemspeicher unterstützt werden. |
IKsJackDescription | Enthält Informationen zu den Anschlüssen oder internen Anschlüssen, die eine physische Verbindung zwischen einem Gerät auf einem Audioadapter und einem externen oder internen Endpunktgerät (z. B. einem Mikrofon oder CD-Player) bereitstellen. |
IPart- | Stellt einen Teil (Verbinder oder Untereinheit) einer Gerätetopologie dar. |
IPartsList- | Stellt eine Liste von Teilen (Verbinder und Untereinheiten) dar. |
IPerChannelDbLevel | Stellt eine generische Untereinheitssteuerungsschnittstelle dar, die die Steuerung pro Kanal über die Lautstärke in Dezibeln eines Audiodatenstroms oder eines Frequenzbands in einem Audiodatenstrom bereitstellt. |
ISubunit | Stellt eine Hardwareuntereinheit (z. B. ein Steuerelement auf Volumeebene) dar, die sich im Datenpfad zwischen einem Client und einem Audioendpunktgerät befindet. |
DeviceTopology-API-Clients, die eine Benachrichtigung über Steuerelementänderungsereignisse in Connectors und Untereinheiten erfordern, sollten die folgende Schnittstelle implementieren.
Schnittstelle | Beschreibung |
---|---|
IControlChangeNotify | Stellt Benachrichtigungen bereit, wenn sich der Status eines Teils (Connector oder Einer Untereinheit) ändert. |
Verwandte Themen