Freigeben über


RenderSharedTimerDriven

Diese Beispielanwendung verwendet die Core Audio-APIs, um Audiodaten auf einem vom Benutzer angegebenen Ausgabegerät zu rendern. In diesem Beispiel wird die zeitgebergesteuerte Pufferung für einen Renderingclient im gemeinsam genutzten Modus veranschaulicht. Bei einem Datenstrom im gemeinsam genutzten Modus teilt der Client den Endpunktpuffer mit dem Audiomodul.

Dieses Thema enthält die folgenden Abschnitte.

Beschreibung

In diesem Beispiel werden die folgenden Features veranschaulicht.

  • MMDevice-API für die Enumeration und Auswahl von Multimediageräten.
  • WASAPI für Datenstromverwaltungsvorgänge.

Anforderungen

Produkt Version
Windows SDK- Windows 7
Visual Studio 2008

 

Herunterladen des Beispiels

Dieses Beispiel ist an den folgenden Speicherorten verfügbar.

Ort Pfad/URL
Windows SDK \Programme\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\RenderSharedTimerDriven\...

 

Erstellen des Beispiels

Führen Sie die folgenden Schritte aus, um das RenderSharedTimerDriven-Beispiel zu erstellen:

  1. Öffnen Sie die CMD-Shell für das Windows SDK, und wechseln Sie zum RenderSharedTimerDriven-Beispielverzeichnis.
  2. Führen Sie den Befehl start WASAPIRenderSharedTimerDriven.sln im RenderSharedTimerDriven-Verzeichnis aus, um das WASAPIRenderSharedTimerDriven-Projekt im Visual Studio-Fenster zu öffnen.
  3. Wählen Sie im Fenster die Debug- oder Release Lösungskonfiguration aus, wählen Sie das Menü Erstellen in der Menüleiste und dann die Option Erstellen aus. Wenn Sie Visual Studio nicht über die CMD-Shell für das SDK öffnen, hat Visual Studio keinen Zugriff auf die SDK-Buildumgebung. In diesem Fall wird das Beispiel nur erstellt, wenn Sie die Umgebungsvariable MSSdk explizit festlegen, die in der Projektdatei verwendet wird, WASAPIRenderSharedTimerDriven.vcproj.

Ausführen des Beispiels

Wenn Sie die Demoanwendung erfolgreich erstellen, wird eine ausführbare Datei WASAPIRenderSharedTimerDriven.exegeneriert. Geben Sie zum Ausführen WASAPIRenderSharedTimerDriven in ein Befehlsfenster ein, gefolgt von erforderlichen oder optionalen Argumenten. Das folgende Beispiel zeigt, wie Sie das Beispiel ausführen, indem Sie die Wiedergabedauer auf dem Standard-Multimediagerät angeben.

WASAPIRenderSharedTimerDriven.exe -d 20 -multimedia

In der folgenden Tabelle sind die Argumente aufgeführt.

Argument Beschreibung
-? Zeigt Hilfe an.
-h Zeigt Hilfe an.
-f Sinuswellenfrequenz in Hz.
-l Audiowiedergabelatenz in Millisekunden.
-d Sinuswellendauer in Sekunden.
-m Deaktiviert die Verwendung von MMCSS.
-Konsole Verwenden Sie das Standardkonsolengerät.
-Kommunikationen Verwenden Sie das Standardkommunikationsgerät.
-Multimedia Verwenden Sie das Standardmäßige Multimediagerät.
-Endpunkt Verwenden Sie den im Switchwert angegebenen Endpunktbezeichner.

 

Wenn die Anwendung ohne Argumente ausgeführt wird, listet sie die verfügbaren Geräte auf und fordert den Benutzer auf, ein Gerät für die Renderingsitzung auszuwählen. Nachdem der Benutzer ein Gerät angegeben hat, rendert die Anwendung eine Sinuswelle mit 440 Hz für 10 Sekunden. Diese Werte können geändert werden, indem sie -f und -d Schalterwerte angeben.

RenderSharedTimerDriven veranschaulicht zeitgesteuerte Pufferung. In diesem Modus muss der Client für einen bestimmten Zeitraum warten (die Hälfte der Latenz, die durch den -d Switchwert angegeben wird, in Millisekunden). Wenn der Client aufwacht, wird der nächste Satz von Beispielen aus dem Modul in der Mitte des Verarbeitungszeitraums abgerufen. Vor jedem Verarbeitungsdurchlauf in der Pufferschleife muss der Client ermitteln, wie viele Daten gerendert werden sollen, damit die Daten den Puffer nicht überlaufen.

Audiodaten, die auf dem angegebenen Gerät wiedergegeben werden sollen, können durch aktivieren der ereignisgesteuerten Pufferung verarbeitet werden. Dieser Modus wird im RenderSharedEventDriven Beispiel veranschaulicht.

Weitere Informationen zum Rendern eines Datenstroms finden Sie unter Rendern eines Stream-.

SDK-Beispiele, die die kernigen Audio-APIs