CaptureSharedTimerDriven
Deze voorbeeldtoepassing maakt gebruik van de Core Audio-API's om audiogegevens vast te leggen van een invoerapparaat dat is opgegeven door de gebruiker en schrijft deze naar een uniek benoemd .wav bestand in de huidige map. In dit voorbeeld ziet u timergestuurde buffering.
Dit onderwerp bevat de volgende secties.
- beschrijving
- vereisten
- het voorbeeld downloaden
- de voorbeeld- bouwen
- het voorbeeld uitvoeren
- Verwante onderwerpen
Beschrijving
In dit voorbeeld ziet u de volgende functies.
- MMDevice-API- voor opsomming en selectie van multimediaapparaten.
- WASAPI- voor stroombeheerbewerkingen.
Eisen
Product | Versie |
---|---|
Windows SDK- | Windows 7 |
Visual Studio | 2008 |
Het voorbeeld downloaden
Dit voorbeeld is beschikbaar op de volgende locaties.
Plaats | Pad/URL |
---|---|
Windows SDK | \Program Files\Microsoft SDK's\Windows\v7.0\Samples\Multimedia\Audio\CaptureSharedTimerDriven\... |
Het voorbeeld bouwen
Gebruik de volgende stappen om het CaptureSharedTimerDriven-voorbeeld te bouwen:
- Open de CMD-shell voor de Windows SDK en ga naar de voorbeeldmap CaptureSharedTimerDriven.
- Voer de opdracht
start WASAPICaptureSharedTimerDriven.sln
uit in de map CaptureSharedTimerDriven om het project WASAPICaptureSharedTimerDriven te openen in het Visual Studio-venster. - Selecteer in het venster de Debug of Release solution configuration, selecteer het Build menu in de menubalk en selecteer de optie Build. Als u Visual Studio niet opent vanuit de CMD-shell voor de SDK, heeft Visual Studio geen toegang tot de SDK-buildomgeving. In dat geval wordt het voorbeeld niet gebouwd, tenzij u expliciet omgevingsvariabele MSSdk instelt, die wordt gebruikt in het projectbestand WASAPICaptureSharedTimerDriven.vcproj.
Het voorbeeld uitvoeren
Als u de demotoepassing bouwt, wordt een uitvoerbaar bestand, WASAPICaptureSharedTimerDriven.exe, gegenereerd. Als u het wilt uitvoeren, typt u WASAPICaptureSharedTimerDriven
in een opdrachtvenster, gevolgd door vereiste of optionele argumenten. In het volgende voorbeeld ziet u hoe u het voorbeeld uitvoert door de opnameduur op te geven op het standaard multimediaapparaat.
WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia
In de volgende tabel ziet u de argumenten.
Argument | Beschrijving |
---|---|
-? | Toont help. |
-h | Toont help. |
-l | Latentie voor audio-opname in milliseconden. |
-d | De opnameduur van audio in seconden. |
-m | Hiermee schakelt u het gebruik van MMCSS uit. |
-troosten | Gebruik het standaardconsoleapparaat. |
-communicatie | Gebruik het standaardcommunicatieapparaat. |
-multimedia | Gebruik het standaard multimediaapparaat. |
-Eindpunt | Gebruik de eindpunt-id die is opgegeven in de schakelwaarde. |
Als de toepassing zonder argumenten wordt uitgevoerd, worden de beschikbare apparaten opgesomd en wordt de gebruiker gevraagd een apparaat voor de opnamesessie te selecteren. De standaardconsole-, communicatie- en multimediaapparaten worden weergegeven, gevolgd door apparaten en de eindpunt-id's. Als er geen duur is opgegeven, wordt de audiostream van het opgegeven apparaat gedurende 10 seconden vastgelegd. De toepassing schrijft de vastgelegde gegevens naar een uniek benoemd .wav-bestand.
CaptureSharedTimerDriven demonstreert timergestuurde buffering. In deze modus moet de client in milliseconden wachten (de helft van de latentie, opgegeven door de -d-switchwaarde). Wanneer de client wakker wordt, halverwege de verwerkingsperiode, haalt deze de volgende set monsters van de engine op. Voordat elke verwerking in de bufferlus wordt doorgegeven, moet de client de hoeveelheid gegevens voor vastleggen die beschikbaar zijn nagaan, zodat de gegevens de capturebuffer niet overlopen. De audiogegevens die vanaf het opgegeven apparaat worden vastgelegd, kunnen worden verwerkt door gebeurtenisgestuurde buffering in te schakelen. Deze modus wordt gedemonstreerd in het voorbeeld CaptureSharedEventDriven.
Verwante onderwerpen