Freigeben über


Erkunden der Windows Vista-Audio-Engine

In diesem Thema finden Sie eine Übersicht über die Windows Vista-Audio-Engine. Es konzentriert sich auf Konzepte, die Ihnen helfen, zu verstehen, wie APOs und sAPOs zusammenarbeiten.

Das folgende Diagramm zeigt ein vereinfachtes Layout der internen Struktur der Audio-Engine.

Diagramm, das das vereinfachte Layout einer Windows Vista-Audio-Engine veranschaulicht.

Wie das Diagramm zeigt, sind vom System bereitgestellte APOs und sAPOs die grundlegenden Bausteine der Audio-Engine. Die Audio-Engine konfiguriert die vom System bereitgestellten APOs und sAPOs in Komponenten, die als Pipes bezeichnet werden. Es gibt zwei Arten von Rohren in der Audio-Engine:

  • Streampipes bestehen aus APOs und sAPOs, die eine digitale Audioverarbeitung durchführen, die lokal für den Stream aus einer einzelnen Anwendung erfolgt. Das sAPO in diesem Pipetyp wird als local effects sAPO (LFX sAPO) bezeichnet.

  • Gerätepipes bestehen aus APOs und sAPOs, die digitale Audioverarbeitung durchführen, die sich auf alle Streams weltweit auswirkt. Das sAPO in diesem Pipetyp wird als global effects sAPO (GFX sAPO) bezeichnet.

Die folgende Tabelle zeigt die sAPOs, die in der Windows Vista-Audio-Engine verfügbar sind, und den Typ der angewendeten Systemeffekte.

Windows Vista sAPO Systemeffekt

Bass Boost

LFX

Bassverwaltung

LFX

Lautheitsausgleich

LFX

Niedrigfrequenzschutz

LFX

Lautsprecherfüllung

LFX

Lautsprecher-Phantoming

LFX

Virtuelle Umgebung

LFX

Virtualisierte Surround over Headphones

LFX

Erweiterter Sound für tragbare Computer

GFX

Raumkorrektur

GFX

Wenn eine Audioanwendung die Audioverarbeitung initiiert, konfiguriert die Audio-Engine die vom System bereitgestellten APOs und die sAPOs in einem Audiodiagramm, um die digitalen Audiodaten zu verarbeiten. Der Mechanismus, den die Audio-Engine zum Erstellen des Audiodiagramms verwendet, ist ein Systemdetails und wird nicht erläutert.

Die Audioanwendung kann die Verbindung im freigegebenen Modus oder im exklusiven Modus initiieren. Obwohl ein Standardsatz von sAPOs mit Windows Vista installiert ist, gelten sAPOs nicht als Systemkomponenten und sind daher anpassbar.

Freigegebener Modus

Im freigegebenen Modus teilt eine Audioanwendung die Audiohardware mit anderen Audioanwendungen, die in anderen Prozessen ausgeführt werden. Die Audio-Engine mischt die Streams aus diesen Anwendungen und gibt den resultierenden Mix über die Hardware ab. Jede Anwendung, die einen Stream im freigegebenen Modus öffnet, muss das von der Audio-Engine verwendete Mixformat auswählen. Der Vorteil der Verwendung des freigegebenen Modus besteht darin, dass die Windows Vista-Audio-Engine ein integriertes Audioverarbeitungsobjekt (Audio Processing Object, APO) bereitstellt, um die erforderliche unterstützende Funktionalität bereitzustellen. Der Nachteil der Verwendung des freigegebenen Modus besteht darin, dass die Audiostreamlatenz höher ist als im exklusiven Modus. Im folgenden Codebeispiel wird die Syntax zum Initialisieren eines Audiodatenstroms im freigegebenen Modus veranschaulicht.

 hResult = pAudioClient->Initialize(
        AUDCLNT_SHAREMODE_SHARED, 
        0,
        0,
        0,
 pWfx,
        &m_SubmixGuid);

Exklusiver Modus

Wenn eine Anwendung hingegen einen Stream im exklusiven Modus öffnet, hat die Anwendung exklusiven Zugriff auf die Audiohardware. In diesem Modus kann die Anwendung ein beliebiges Audioformat auswählen, das der Endpunkt unterstützt. Der Vorteil der Verwendung des exklusiven Modus besteht darin, dass die Audiostreamlatenz geringer ist als im freigegebenen Modus. Der Nachteil der Verwendung des exklusiven Modus ist, dass Sie Einen eigenen APO bereitstellen müssen, um die unterstützende Funktionalität der Audio-Engine zu verarbeiten. Nur eine kleine Anzahl von Anwendungen auf professioneller Ebene erfordert diese Betriebsart. Das folgende Codebeispiel zeigt die Syntax zum Initialisieren eines Audiodatenstroms im exklusiven Modus.

 hResult = pAudioClient->Initialize(
            AUDCLNT_SHAREMODE_EXCLUSIVE,
            0,
            0,
            0,  
 pWfxEx,
            &m_SubmixGuid);

Nachdem eine Anwendung die Audioverarbeitung initiiert hat, konfiguriert der Graph-Generator die sAPOs in ein Audiodiagramm und initialisiert auch die sAPOs. Der Audiodienst verhandelt dann mit dem LFX APO, um das Format für die Audiodaten an der Ein- und Ausgabe des APO festzulegen. Weitere Informationen finden Sie unter Formatverhandlung.