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 renderowania danych dźwiękowych na urządzeniu wyjściowym określonym przez użytkownika. W tym przykładzie pokazano buforowanie sterowane zdarzeniami dla klienta renderowania w trybie udostępnionym. W przypadku strumienia w trybie udostępnionym klient udostępnia bufor punktu końcowego aparatowi audio.
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\RenderSharedEventDriven\... |
Kompilowanie przykładu
Aby skompilować przykład RenderSharedEventDriven, wykonaj następujące kroki:
- Otwórz powłokę CMD dla zestawu Windows SDK i przejdź do przykładowego katalogu RenderSharedEventDriven.
- Uruchom polecenie
start WASAPIRenderSharedEventDriven.slnw katalogu RenderSharedEventDriven, aby otworzyć projekt WASAPIRenderSharedEventDriven 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 WASAPIRenderSharedEventDriven.vcproj.
Uruchamianie przykładu
Jeśli aplikacja demonstracyjna zostanie utworzona pomyślnie, zostanie wygenerowany plik wykonywalny WASAPIRenderSharedEventDriven.exe. Aby go uruchomić, wpisz WASAPIRenderSharedEventDriven 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 odtwarzania na domyślnym urządzeniu multimedialnym.
WASAPIRenderSharedEventDriven.exe -d 20 -multimedia
W poniższej tabeli przedstawiono argumenty.
| Argument | Opis |
|---|---|
| -? | Pokazuje pomoc. |
| -h | Pokazuje pomoc. |
| -f | Częstotliwość sinusu falowego w Hz. |
| -l | Opóźnienie renderowania audio w milisekundach. |
| -d | Czas trwania fali sinusu 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 renderowania. Gdy użytkownik określi urządzenie, aplikacja renderuje sinusoidę z prędkością 440 Hz przez 10 sekund. Te wartości można modyfikować, określając -f i -d wartości przełącznika.
RenderSharedEventDriven demonstruje buforowanie sterowane zdarzeniami. W przykładzie pokazano, jak:
- Utwórz wystąpienie klienta audio, skonfiguruj go do uruchamiania w trybie wyłączności i włącz buforowanie sterowane zdarzeniami, ustawiając flagę AUDCLNT_STREAMFLAGS_EVENTCALLBACK w wywołaniu w celu IAudioClient::Initialize.
- Skojarz klienta z przykładami, które są gotowe do renderowania, dostarczając do systemu dojście zdarzeń przez wywołanie metody IAudioClient::SetEventHandle.
- Utwórz wątek renderowania w celu przetworzenia przykładów z aparatu audio.
- Sprawdź format mieszany punktu końcowego urządzenia, aby określić, czy można renderować próbki. Jeśli urządzenie nie obsługuje formatu mix, dane są konwertowane na PCM.
- Obsługa przełączania strumienia.
Po rozpoczęciu sesji renderowania i uruchomieniu strumienia aparat audio sygnalizuje dostarczone dojście zdarzeń w celu powiadomienia klienta za każdym razem, gdy bufor staje się gotowy do przetworzenia przez klienta. Dane audio mogą być również przetwarzane w pętli sterowanej czasomierzem. Ten tryb jest pokazany w przykładzie RenderSharedTimerDriven.
Aby uzyskać więcej informacji na temat renderowania strumienia, zobacz Renderowanie strumienia.
Tematy pokrewne
-
przykłady zestawu SDK korzystające z podstawowych interfejsów API audio