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 zeitgebergesteuerte Pufferung veranschaulicht.

Dieses Thema enthält folgende Abschnitte:

BESCHREIBUNG

In diesem Beispiel werden die folgenden Features veranschaulicht.

  • MMDevice-API für multimediale Geräteenumeration und -auswahl.
  • WASAPI für Datenstromverwaltungsvorgänge.

Requirements (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

Um das CaptureSharedTimerDriven-Beispiel zu erstellen, verwenden Sie die folgenden Schritte:

  1. Öffnen Sie die CMD-Shell für das Windows SDK, und wechseln Sie in das Beispielverzeichnis CaptureSharedTimerDriven.
  2. Führen Sie den Befehl start WASAPICaptureSharedTimerDriven.sln im Verzeichnis CaptureSharedTimerDriven aus, um das Projekt WASAPICaptureSharedTimerDriven im fenster Visual Studio zu öffnen.
  3. Wählen Sie im Fenster die Konfiguration Debug- oder Releaselösung aus, wählen Sie in der Menüleiste das Menü Erstellen und dann die Option Erstellen aus. Wenn Sie Visual Studio nicht über die CMD-Shell für das SDK öffnen, haben 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 Sie zum Ausführen WASAPICaptureSharedTimerDriven ein Befehlsfenster gefolgt von erforderlichen oder optionalen Argumenten ein. Das folgende Beispiel zeigt, wie das Beispiel ausgeführt wird, indem die Erfassungsdauer auf dem Standardmäßigen Multimediagerät angegeben wird.

WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia

In der folgenden Tabelle sind die Argumente aufgeführt.

Argument BESCHREIBUNG
-? Zeigt Hilfe an.
-h Zeigt Hilfe an.
-l Audioaufnahmelatenz in Millisekunden.
-d Dauer der Audioaufnahme in Sekunden.
-M Deaktiviert die Verwendung von MMCSS.
-console Verwenden Sie das Standardkonsolengerät.
-communications Verwenden Sie das Standardkommunikationsgerät.
-multimedia Verwenden Sie das Standardmäßige Multimediagerät.
-endpoint Verwenden Sie den Endpunktbezeichner, der im Switchwert angegeben ist.

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 Standardkonsole, Kommunikations- und Multimediageräte werden aufgeführt, gefolgt von Geräten und den Endpunktbezeichnern. Wenn keine Dauer angegeben wird, wird der Audiodatenstrom vom angegebenen Gerät 10 Sekunden lang erfasst. Die Anwendung schreibt die erfassten Daten in eine eindeutig benannte WAV-Datei.

CaptureSharedTimerDriven veranschaulicht die zeitgebergesteuerte Pufferung. In diesem Modus muss der Client einen Zeitraum warten (die Hälfte der Latenz, angegeben durch den Schalterwert -d, in Millisekunden). Wenn der Client reaktiviert wird, wird in der Mitte des Verarbeitungszeitraums der nächste Satz von Stichproben aus der Engine abgerufen. Bevor jeder Verarbeitungsdurchlauf in der Pufferungsschleife erfolgt, 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 die ereignisgesteuerte Pufferung aktiviert wird. Dieser Modus wird im CaptureSharedEventDriven-Beispiel veranschaulicht.

SDK-Beispiele, die die Kernaudio-APIs verwenden