Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- wymagania dotyczące
- pobieranie przykładowej
- tworzenie przykładu
- uruchamianie przykładowej
- Tematy pokrewne
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:
- Otwórz powłokę CMD dla zestawu Windows SDK i przejdź do katalogu przykładowego CaptureSharedTimerDriven.
- Uruchom polecenie
start WASAPICaptureSharedTimerDriven.slnw katalogu CaptureSharedTimerDriven, aby otworzyć projekt WASAPICaptureSharedTimerDriven w oknie programu Visual Studio. - 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.
Tematy pokrewne
-
przykłady zestawu SDK korzystające z podstawowych interfejsów API audio