Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im Loopbackmodus kann ein Client von WASAPI den Audiodatenstrom erfassen, der von einem Renderingendpunktgerät wiedergegeben wird. Um einen Datenstrom im Loopbackmodus zu öffnen, muss der Client:
- Eine IMMDevice-Schnittstelle für das Rendering-Endpunktgerät abrufen.
- Initialisieren sie einen Aufnahmedatenstrom im Loopbackmodus auf dem Renderingendpunktgerät.
Nach den folgenden Schritten kann der Client die IAudioClient::GetService-Methode aufrufen, um eine IAudioCaptureClient-Schnittstelle auf dem Renderingendpunktgerät abzurufen.
WASAPI bietet den Loopbackmodus hauptsächlich zur Unterstützung der akustischen Echounterdrückung (AEC). Andere Arten von Audioanwendungen können jedoch den Loopbackmodus hilfreich finden, um den Vom Audiomodul wiedergegebenen Systemmix zu erfassen.
Im Codebeispiel beim Erfassen eines Datenstroms kann die RecordAudioStream-Funktion einfach geändert werden, um einen Loopbackmodus-Aufnahmedatenstrom zu konfigurieren. Die erforderlichen Änderungen sind:
- Ändern Sie im Aufruf der IMMDeviceEnumerator::GetDefaultAudioEndpoint-Methode den ersten Parameter (dataFlow) von "eCapture" in "eRender".
- Ändern Sie im Aufruf der IAudioClient::Initialize-Methode den Wert des zweiten Parameters (StreamFlags) von 0 in AUDCLNT_STREAMFLAGS_LOOPBACK.
In Versionen von Windows vor Windows 10 1703 empfängt der Pullmoduserfassungsclient keine Ereignisse, wenn ein Stream mit ereignisgesteuertem Puffer initialisiert wird und Loopback aktiviert ist. Um dies zu umgehen, initialisieren Sie einen Renderdatenstrom im ereignisgesteuerten Modus. Jedes Mal, wenn der Client ein Ereignis für den Renderdatenstrom empfängt, muss er den Aufnahmeclient signalisieren, um den Aufnahmethread auszuführen, der den nächsten Satz von Beispielen aus dem Aufnahmeendpunktpuffer liest. In Windows 10-Versionen 1703 und höher werden ereignisgesteuerte Loopbackclients unterstützt, und die Problemumgehung mit dem Renderdatenstrom ist nicht mehr erforderlich.
Ein Client kann den Loopbackmodus nur für einen Datenstrom im gemeinsam genutzten Modus (AUDCLNT_SHAREMODE_SHARED) aktivieren. Datenströme im Exklusivmodus können nicht im Loopback-Modus ausgeführt werden.
Die Implementierung von Loopback durch WASAPI hängt von den Funktionen der Hardware ab. Wenn die Hardware einen Loopback-Pin auf dem Wiedergabeendpunkt unterstützt, verwendet WASAPI das auf diesem Pin bereitgestellte Audio für den Loopback-Datenstrom. Wenn die Hardware keine Loopback-Pin unterstützt, kopiert WASAPI den Ausgabedatenstrom vom Audiomodul in den Aufnahmepuffer der Loopbackanwendung, zusätzlich zum Kopieren der Audiodaten in den Render-Pin der Hardware.
Einige Hardwareanbieter implementieren Loopbackgeräte (im Gegensatz zu Pin-Instanzen auf Rendergeräten) in ihren Audioadaptern. Obwohl Hardware-Loopbackgeräte ähnlich arbeiten wie der WASAPI-Loopbackmodus, können sie schwieriger in der Anwendung sein.
Hardware-Loopbackgeräte haben die folgenden Nachteile für Audioanwendungen:
- Nicht alle Audioadapter verfügen über Loopbackgeräte. Anwendungen, die von ihnen abhängen, funktionieren daher nicht auf allen Systemen.
- Bevor eine Anwendung von einem Loopbackgerät aufzeichnen kann, muss der Benutzer das Loopbackgerät identifizieren und für die Verwendung aktivieren.
Unterschiedliche Anbieter weisen ihren Hardware-Loopbackgeräten unterschiedliche Namen zu. Die folgenden Namen sind Beispiele:
- Stereomix
- Waveout Mix
- Gemischte Ausgabe
- Was Sie hören
Der Mangel an standardisierten Namen kann dazu führen, dass Benutzer Schwierigkeiten haben, ein Loopbackgerät in einer Liste der Gerätenamen zu identifizieren.
Ein Hardware-Loopbackgerät ist ein Aufnahmegerät. Wenn ein Adapter also ein Loopbackgerät unterstützt, kann eine Audioanwendung auf die gleiche Weise vom Gerät aufzeichnen wie von jedem anderen Aufnahmegerät.
Wenn Sie beispielsweise ein Hardware-Loopbackgerät als Standardaufnahmegerät auswählen, können Sie die RecordAudioStream-Funktion (ohne Änderung) im Codebeispiel beim Erfassen eines Datenstroms verwenden, um den Datenstrom vom Gerät zu erfassen. (Sie können auch eine ältere Audio-API verwenden, z. B. die Windows Multimedia waveInXxx-Funktionen , um den Datenstrom vom Gerät zu erfassen.)
Wenn Ihr Audioadapter ein Hardware-Loopbackgerät enthält, können Sie die Windows-Multimedia-Systemsteuerung Mmsys.cpl verwenden, um das Gerät als Standardaufnahmegerät festzulegen. Die Schritte lauten wie folgt:
Um Mmsys.cpl auszuführen, öffnen Sie ein Eingabeaufforderungsfenster, und geben Sie den folgenden Befehl ein:
control mmsys.cpl
Alternativ können Sie Mmsys.cpl ausführen, indem Sie im Infobereich mit der rechten Maustaste auf das Lautsprechersymbol klicken, das sich auf der rechten Seite der Taskleiste befindet, und "Aufzeichnungsgeräte" auswählen.
Nachdem das fenster Mmsys.cpl geöffnet wurde, klicken Sie mit der rechten Maustaste auf eine beliebige Stelle in der Liste der Aufzeichnungsgeräte, und stellen Sie sicher, dass die Option "Deaktivierte Geräte anzeigen" aktiviert ist. (Wenn das Loopbackgerät deaktiviert ist, wird es nicht in der Liste angezeigt.)
Durchsuchen Sie die Liste der Aufzeichnungsgeräte, um das Loopbackgerät (sofern vorhanden) zu finden. Wenn das Loopbackgerät deaktiviert ist, aktivieren Sie es, indem Sie mit der rechten Maustaste auf das Gerät klicken und auf "Aktivieren" klicken.
Um das Loopbackgerät als Standardaufnahmegerät auszuwählen, klicken Sie mit der rechten Maustaste auf das Gerät, und klicken Sie dann auf "Als Standardgerät festlegen".
WASAPI unterstützt Loopbackaufzeichnungen, unabhängig davon, ob die Audiohardware ein Loopbackgerät enthält oder ob der Benutzer das Gerät aktiviert hat.
Windows Vista bietet verwaltung digitaler Rechte (Digital Rights Management, DRM). Inhaltsanbieter verlassen sich auf DRM, um ihre proprietäre Musik oder andere Inhalte vor unbefugtem Kopieren und anderen illegalen Verwendungen zu schützen. Ebenso lässt ein vertrauenswürdiger Audiotreiber kein Loopbackgerät zu, digitale Datenströme zu erfassen, die geschützte Inhalte enthalten. Windows Vista ermöglicht nur vertrauenswürdigen Treibern die Wiedergabe geschützter Inhalte. Weitere Informationen zu vertrauenswürdigen Treibern und DRM finden Sie in der Windows DDK-Dokumentation.
WASAPI-Loopback enthält standardmäßig die Mischung aller wiedergegebenen Audiodaten, unabhängig von der Terminaldienste-Sitzung, von der die Audiodaten stammen. Sie können zum Beispiel einen Loopback-Client in einem Dienst ausführen, der in Sitzung 0 läuft, und dabei Audio aus allen Benutzersitzungen sowie Audiodaten, die in Sitzung 0 wiedergegeben werden, aufzeichnen.
Remotedesktop ermöglicht das Umleiten von Audio an den Client. Dies wird implementiert, indem neue Audiogeräte erstellt werden, die nur für diese Sitzung angezeigt werden.
Zugehörige Themen