Udostępnij za pośrednictwem


CaptureSharedTimerDriven

Ta przykładowa aplikacja używa podstawowych interfejsów API audio do przechwytywania danych dźwiękowych z urządzenia wejściowego określonego przez użytkownika i zapisuje je w unikatowym pliku .wav w bieżącym katalogu. W tym przykładzie pokazano buforowanie sterowane czasomierzem.

Ten temat zawiera następujące sekcje.

Opis

W tym przykładzie przedstawiono następujące funkcje.

  • interfejsu API MMDevice dla wyliczenia i wyboru urządzenia multimedialnego.
  • WASAPI na potrzeby operacji zarządzania strumieniem.

Wymagania

Produkt Wersja
zestaw Windows SDK Windows 7
Visual Studio 2008

 

Pobieranie przykładu

Ten przykład jest dostępny w następujących lokalizacjach.

Lokalizacja Ścieżka/adres URL
Windows SDK \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\CaptureSharedTimerDriven\...

 

Kompilowanie przykładu

Aby skompilować przykład CaptureSharedTimerDriven, wykonaj następujące kroki:

  1. Otwórz powłokę CMD dla zestawu Windows SDK i przejdź do katalogu przykładowego CaptureSharedTimerDriven.
  2. Uruchom polecenie start WASAPICaptureSharedTimerDriven.sln w katalogu CaptureSharedTimerDriven, aby otworzyć projekt WASAPICaptureSharedTimerDriven w oknie programu Visual Studio.
  3. W oknie wybierz konfigurację rozwiązania Debugowanie lub Wydania, wybierz menu kompilacji na pasku menu i wybierz opcję Kompilacja. Jeśli program Visual Studio nie zostanie otwarty z poziomu powłoki CMD dla zestawu SDK, program Visual Studio nie będzie miał dostępu do środowiska kompilacji zestawu SDK. W takim przypadku przykład nie zostanie skompilowany, chyba że jawnie ustawisz zmienną środowiskową MSSdk, która jest używana w pliku projektu WASAPICaptureSharedTimerDriven.vcproj.

Uruchamianie przykładu

Jeśli aplikacja demonstracyjna zostanie utworzona pomyślnie, zostanie wygenerowany plik wykonywalny WASAPICaptureSharedTimerDriven.exe. Aby go uruchomić, wpisz WASAPICaptureSharedTimerDriven w oknie polecenia, po którym następują wymagane lub opcjonalne argumenty. W poniższym przykładzie pokazano, jak uruchomić przykład, określając czas trwania przechwytywania na domyślnym urządzeniu multimedialnym.

WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia

W poniższej tabeli przedstawiono argumenty.

Argument Opis
-? Pokazuje pomoc.
-h Pokazuje pomoc.
-l Opóźnienie przechwytywania dźwięku w milisekundach.
-d Czas trwania przechwytywania dźwięku w sekundach.
-m Wyłącza korzystanie z programu MMCSS.
-konsola Użyj domyślnego urządzenia konsoli.
-Komunikacji Użyj domyślnego urządzenia komunikacyjnego.
-multimedia Użyj domyślnego urządzenia multimedialnego.
-punkt końcowy Użyj identyfikatora punktu końcowego określonego w wartości przełącznika.

 

Jeśli aplikacja jest uruchamiana bez argumentów, wylicza dostępne urządzenia i monituje użytkownika o wybranie urządzenia na potrzeby sesji przechwytywania. Domyślnie wyświetlane są urządzenia konsolowe, komunikacyjne i multimedialne, a następnie urządzenia i identyfikatory punktów końcowych. Jeśli nie określono czasu trwania, strumień audio z określonego urządzenia jest przechwytywany przez 10 sekund. Aplikacja zapisuje przechwycone dane do unikatowo nazwanego pliku .wav.

CaptureSharedTimerDriven demonstruje buforowanie sterowane czasomierzem. W tym trybie klient musi czekać przez pewien czas (połowa opóźnienia określona przez wartość przełącznika -d w milisekundach). Gdy klient wznawia się, w połowie okresu przetwarzania pobiera następny zestaw próbek z aparatu. Przed przekazaniem każdego przetwarzania w pętli buforowania klient musi sprawdzić ilość dostępnych danych przechwytywania, aby dane nie przepełniły buforu przechwytywania. Dane audio przechwycone z określonego urządzenia mogą być przetwarzane przez włączenie buforowania sterowanego zdarzeniami. Ten tryb przedstawiono w przykładzie CaptureSharedEventDriven.

przykłady zestawu SDK korzystające z podstawowych interfejsów API audio