Windows-Audioarchitektur
Dieses Thema enthält eine allgemeine Zusammenfassung der Windows 10/11-Audioarchitektur.
Windows 10/11-Audiostapel-Diagramm
Dieses Diagramm enthält eine Zusammenfassung der wichtigsten Elemente des Windows 10/11-Audiostapels.
APIs
APIs der obersten Ebene
Die APIs der obersten Ebene werden für die Anwendungsentwicklung verwendet. Diese APIs werden derzeit verwendet und unterstützt.
- XAML MediaElement-Klasse(C#, VB, C++)
- HTML-Audioobjekt- und Videoobjekt<-Tags> (von Websites und Windows Web Apps verwendet)
- Windows.Media.Capture-Namespace (C#, VB, C++)
- Microsoft Media Foundation (C++)
Diese älteren APIs sind veraltet.
APIs auf niedriger Ebene
Diese APIs auf niedrigerer Ebene werden für das Audiostreaming empfohlen.
Diese API auf niedrigerer Ebene wird für die Enumeration empfohlen.
Diese APIs werden für Windows-Anwendungen nicht empfohlen.
- Informationen zur MMDevice-API (wird durch Windows.Devices.Enumeration ersetzt)
- DeviceTopology-API
- EndpointVolume-API
Audiomodul
Das Audiomodul besteht aus zwei verwandten Komponenten, dem Audiogerätediagramm (audiodg.exe), das das Audiomodul (audioeng.dll) lädt.
Das Audiomodul:
- Mischt und verarbeitet Audiostreams. Weitere Informationen dazu, wie das Audiomodul Puffer zum Übertragen von Audio verwendet, finden Sie unter Grundlegendes zum WaveRT-Porttreiber.
- Lädt Audio Processing Objects (APOs); das sind hardwarespezifische Plug-Ins, die das Audiosignal verarbeiten. Weitere Informationen zu APOs finden Sie unter Windows-Audioverarbeitungsobjekte.
Audiodienst (audiosrv.dll)
Der Audiodienst:
- Wird zum Einrichten und Steuern von Audiostreams verwendet.
- Implementiert Windows-Richtlinien für die Audiowiedergabe im Hintergrund, Ducking usw.
Audio-Endpunktgenerator (audioendpointbuilder.exe)
Der Audio-Endpunktgenerator (audioendpointbuilder.exe):
- Wird verwendet, um neue Audiogeräte zu ermitteln und Softwareaudioendpunkte zu erstellen. Weitere Informationen zum verwendeten Algorithmus finden Sie unter Algorithmus für Audioendpunkterstellung.
Audiotreiber
Audiotreiber:
- Folgen Sie dem Port-Miniport-Modell. Weitere Informationen finden Sie unter WDM-Audioterminologie und Entwickeln eines WaveRT-Miniport-Treibers.
- Ermöglichen Sie dem Audiostapel das Rendern und Erfassen von Audio von mehreren Audiogeräten, einschließlich integrierter Lautsprecher und Mikrofone, Headsets/Kopfhörer, USB-Geräte, Bluetooth-Geräte, HDMI usw.
- Das Port-Miniport-Modell entspricht der Advanced Linux Sound Architecture ALSA
- Informationen zum Beispieltreibercode finden Sie unter Beispielaudiotreiber.
Hardware
Die Audiohardware, die auf einem bestimmten Gerät vorhanden ist, variiert jedoch:
- Audiocodec
- DSP (optional)
- Integrierte Lautsprecher, Mikrofone usw.
- Externe Geräte: USB-Audiogeräte, Bluetooth-Audiogeräte, HDMI-Audio usw.
- Anstelle oder zusätzlich zu den APOs kann die Signalverarbeitung auch in der Hardware (z. B. dem Codec oder dem DSP) implementiert werden.