Freigeben über


CaptureSharedTimerDriven

Diese Beispielanwendung verwendet die Core Audio-APIs, um Audiodaten von einem vom Benutzer angegebenen Eingabegerät zu erfassen und in eine eindeutig benannte WAV-Datei im aktuellen Verzeichnis zu schreiben. In diesem Beispiel wird die timergesteuerte Pufferung veranschaulicht.

Dieses Thema enthält folgende Abschnitte:

BESCHREIBUNG

In diesem Beispiel werden die folgenden Features veranschaulicht.

  • MMDevice-API für Die Aufzählung und Auswahl von Multimediageräten.
  • WASAPI für Streamverwaltungsvorgänge.

Anforderungen

Produkt Version
Windows SDK Windows 7
Visual Studio 2008

 

Herunterladen des Beispiels

Dieses Beispiel ist an den folgenden Speicherorten verfügbar.

Standort Pfad/URL
Windows SDK \Programme\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\CaptureSharedTimerDriven\...

 

Erstellen des Beispiels

Führen Sie zum Erstellen des CaptureSharedTimerDriven-Beispiels die folgenden Schritte aus:

  1. Öffnen Sie die CMD-Shell für das Windows SDK, und wechseln Sie zum Beispielverzeichnis CaptureSharedTimerDriven.
  2. Führen Sie den Befehl start WASAPICaptureSharedTimerDriven.sln im Verzeichnis CaptureSharedTimerDriven aus, um das PROJEKT WASAPICaptureSharedTimerDriven im Visual Studio-Fenster zu öffnen.
  3. Wählen Sie im Fenster die Projektmappenkonfiguration Debuggen oder Freigeben aus, wählen Sie in der Menüleiste das Menü Erstellen aus, und wählen Sie 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 WASAPICaptureSharedTimerDriven.vcproj verwendet wird.

Ausführen des Beispiels

Wenn Sie die Demoanwendung erfolgreich erstellen, wird eine ausführbare Datei WASAPICaptureSharedTimerDriven.exe generiert. Geben WASAPICaptureSharedTimerDriven Sie zum Ausführen in ein Befehlsfenster gefolgt von erforderlichen oder optionalen Argumenten ein. Im folgenden Beispiel wird gezeigt, wie das Beispiel ausgeführt wird, indem Sie die Erfassungsdauer auf dem Standard-Multimediagerät angeben.

WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia

Die folgende Tabelle zeigt die Argumente.

Argument BESCHREIBUNG
-? Zeigt Hilfe an.
-H Zeigt Hilfe an.
-l Latenz der Audioaufnahme in Millisekunden.
-d Audioaufnahmedauer in Sekunden.
-M Deaktiviert die Verwendung von MMCSS.
-Konsole Verwenden Sie das Standardkonsolengerät.
-Kommunikation Verwenden Sie das Standardkommunikationsgerät.
-Multimedia Verwenden Sie das Standard-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 Erfassungssitzung auszuwählen. Die Standardkonsolen-, Kommunikations- und Multimediageräte werden aufgeführt, gefolgt von Geräten und den Endpunktbezeichnern. Wenn keine Dauer angegeben ist, wird der Audiodatenstrom des angegebenen Geräts 10 Sekunden lang aufgezeichnet. Die Anwendung schreibt die erfassten Daten in eine eindeutig benannte WAV-Datei.

CaptureSharedTimerDriven veranschaulicht timergesteuerte Pufferung. In diesem Modus muss der Client für einen bestimmten Zeitraum warten (die Hälfte der Latenz, die durch den Switchwert -d angegeben wird, in Millisekunden). Wenn der Client zur Hälfte des Verarbeitungszeitraums aufwacht, wird der nächste Satz von Beispielen aus der Engine abgerufen. Vor jedem Verarbeitungsdurchlauf in der Pufferschleife muss der Client die menge der verfügbaren Erfassungsdaten ermitteln, damit die Daten den Erfassungspuffer nicht überlaufen. Die Audiodaten, die vom angegebenen Gerät erfasst werden, können verarbeitet werden, indem ereignisgesteuerte Pufferung aktiviert wird. Dieser Modus wird im Beispiel CaptureSharedEventDriven veranschaulicht.

SDK-Beispiele, die die Core-Audio-APIs verwenden