Udostępnij za pośrednictwem


DuckingCaptureSample

Ta przykładowa aplikacja demonstruje otwieranie i zamykanie strumieni komunikacji oraz powoduje zdarzenia redukcji głośności (tzw. ducking), które aplikacja może wykorzystać do implementacji tłumienia strumienia. Ta aplikacja implementuje klienta czatu, który używa podstawowych interfejsów API audio do odczytywania danych audio z urządzenia komunikacyjnego i odtwarzania go na urządzeniu wyjściowym.

Ten temat zawiera następujące sekcje.

Opis

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

  • API MMDevice dla wyliczania i wyboru urządzenia multimedialnego.
  • WASAPI na potrzeby uzyskiwania dostępu do przechwytywania i renderowania komunikacji, operacji zarządzania strumieniem i obsługi zdarzeń ducking.
  • API WAVE do uzyskiwania dostępu do urządzenia komunikacyjnego i przechwytywania dźwięku.

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\DuckingCaptureSample\...

 

Kompilowanie przykładu

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

  1. Otwórz DuckingCaptureSample.sln w programie Visual Studio 2008.
  2. W oknie wybierz konfigurację rozwiązania Debug lub Release, wybierz menu Kompilacja na pasku menu i wybierz opcję Kompilacja. Jeśli nie otworzysz programu Visual Studio przez konsolę CMD dla zestawu SDK, program Visual Studio nie będzie miał dostępu do środowiska kompilacji SDK. W takim przypadku przykład nie zostanie skompilowany, chyba że jawnie ustawisz zmienną środowiskową MSSdk, która jest używana w pliku projektu DuckingCaptureSample.vcproj.

Uruchamianie przykładu

Jeśli aplikacja zostanie utworzona pomyślnie, zostanie wygenerowany plik wykonywalny DuckingCaptureSample.exe. Aby go uruchomić, wybierz Rozpocznij debugowanie lub Rozpocznij bez debugowania z menu debugowania lub wpisz DuckingCaptureSample w oknie polecenia.

DuckingCaptureSample udostępnia użytkownikowi dwie implementacje służące do przechwytywania dźwięku z domyślnego urządzenia konsolowego: WASAPI i Wave API. Aby rozpocząć sesję przechwytywania, wybierz tryb i kliknij przycisk Uruchom w interfejsie użytkownika aplikacji. Aby zakończyć sesję, kliknij Zatrzymaj. W zależności od urządzenia określonego przez użytkownika (dane wejściowe lub wyjściowe) aplikacja używa interfejsu API MMDevice do uzyskania odwołania do domyślnego urządzenia renderowania lub przechwytywania komunikacji. Po rozpoczęciu sesji czatu aplikacja wykonuje następujące zadania:

  • Tworzy i inicjuje klienta audio w trybie sterowanym zdarzeniami.
  • Kojarzy klienta z uchwytem zdarzeń, który sygnalizuje, że próbki są gotowe do przechwytywania lub renderowania.
  • Konfiguruje klienta przechwytywania i klienta renderowania dla transportu.
  • Tworzy wątek czatu i uruchamia aparat audio.

W przypadku przechwytywania danych audio, przy każdym kroku przetwarzania, przykład używa klienta przechwytywania, aby uzyskać całkowitą ilość przechwyconych danych dostępnych w buforze, odczytywać dane z domyślnego urządzenia wejściowego, zwalniać pakiet oraz udostępniać bufor do odczytania kolejnego zestawu przechwyconych danych.

W przypadku renderowania aplikacja określa ilość danych w kolejce do odtwarzania w buforze punktu końcowego przechwytywania. Zapisuje dane do bufora, a następnie zwalnia bufor, przygotowując się do kolejnego cyklu przetwarzania, do momentu aż wszystkie dane zostaną zapisane. W przypadku renderowania ramki bez dźwięku są wstępnie przetwarzane, aby zapobiec zakłóceniom silnika audio podczas uruchamiania. DuckingCaptureSample pokazuje również, jak ukryć strumień renderowania przed mikserem głośności.

Aby uzyskać więcej informacji na temat funkcji tłumienia strumienia, zobacz Using a Communication Device.

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