Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W trybie sprzężenia zwrotnego klient WASAPI może przechwytywać strumień audio odtwarzany przez urządzenie punktu końcowego renderowania. Aby otworzyć strumień w trybie sprzężenia zwrotnego, klient musi:
- Uzyskaj interfejs IMMDevice dla urządzenia punktu końcowego renderowania.
- Inicjowanie strumienia przechwytywania w trybie sprzężenia zwrotnego na urządzeniu punktu końcowego renderowania.
Po wykonaniu tych kroków klient może wywołać metodę IAudioClient::GetService, aby uzyskać interfejs IAudioCaptureClient na urządzeniu punktu końcowego renderowania.
Interfejs WASAPI zapewnia tryb pętli zwrotnej przede wszystkim do obsługi anulowania echa akustycznego (AEC). Jednak inne typy aplikacji audio mogą znaleźć tryb pętli przydatny do przechwytywania miksu systemowego odtwarzanego przez aparat audio.
W przykładzie kodu w Przechwytywanie strumieniamożna łatwo zmodyfikować funkcję RecordAudioStream w celu skonfigurowania strumienia przechwytywania w trybie sprzężenia zwrotnego. Wymagane modyfikacje to:
- W wywołaniu metody IMMDeviceEnumerator::GetDefaultAudioEndpoint zmień pierwszy parametr (dataFlow) z eCapture na eRender.
- W wywołaniu metody IAudioClient::Initialize zmień wartość drugiego parametru (StreamFlags) z 0 na AUDCLNT_STREAMFLAGS_LOOPBACK.
W wersjach systemu Windows wcześniejszych niż Windows 10 1703 klient przechwytywania trybu ściągania nie odbiera żadnych zdarzeń, gdy strumień jest inicjowany z buforowaniem sterowanym zdarzeniami i jest włączony sprzężenie zwrotne. Aby obejść ten temat, zainicjuj strumień renderowania w trybie sterowanym zdarzeniami. Za każdym razem, gdy klient odbiera zdarzenie dla strumienia renderowania, musi zasygnalizować klienta przechwytywania, aby uruchomić wątek przechwytywania, który odczytuje następny zestaw próbek z buforu punktu końcowego przechwytywania. W systemie Windows 10 w wersji 1703 i nowszych obsługiwani są klienci pętli zwrotnej opartej na zdarzeniach, którzy nie potrzebują już obejścia związanego ze strumieniem renderowania.
Klient może włączyć tryb pętli zwrotnej tylko dla strumienia w trybie udostępnionym (AUDCLNT_SHAREMODE_SHARED). Strumienie trybu wyłącznego nie mogą działać w trybie pętli zwrotnej.
Implementacja sprzężenia zwrotnego przez interfejs WASAPI zależy od możliwości sprzętu. Jeśli sprzęt obsługuje wyprowadzanie sprzężenia zwrotnego w punkcie końcowym renderowania, interfejs WASAPI używa dźwięku dostarczonego na tym numerze PIN dla strumienia sprzężenia zwrotnego. Gdy sprzęt nie obsługuje pinu loopback, WASAPI kopiuje strumień wyjściowy z silnika audio do bufora przechwytywania aplikacji loopback, oprócz kopiowania danych audio do pinu renderowania sprzętu.
Niektórzy dostawcy sprzętu implementują urządzenia pętli zwrotnej (w przeciwieństwie do instancji przypinania pinów na urządzeniach do renderowania) w swoich adapterach audio. Chociaż urządzenia sprzężenia zwrotnego sprzętu są podobne do trybu sprzężenia zwrotnego WASAPI, mogą być trudniejsze do użycia.
Urządzenia sprzężenia zwrotnego sprzętu mają następujące wady dla aplikacji audio:
- Nie wszystkie adaptery audio mają urządzenia sprzężenia zwrotnego. W związku z tym aplikacje zależne od nich nie będą działać we wszystkich systemach.
- Zanim aplikacja będzie mogła rejestrować dane z urządzenia sprzężenia zwrotnego, użytkownik musi zidentyfikować urządzenie sprzężenia zwrotnego i włączyć je do użycia.
Różni dostawcy przypisują różne nazwy do swoich urządzeń sprzężenia zwrotnego sprzętu. Oto przykłady następujących nazw:
- Stereo Mix
- Waveout Mix
- Mieszane dane wyjściowe
- Co słyszysz
Brak ustandaryzowanych nazw może spowodować, że użytkownicy będą mieli trudności z identyfikacją urządzenia pętli zwrotnej na liście nazw urządzeń.
Urządzenie sprzętowej pętli zwrotnej jest urządzeniem przechwytywania. W związku z tym, jeśli karta obsługuje urządzenie sprzężenia zwrotnego, aplikacja audio może rejestrować z urządzenia w taki sam sposób, jak rejestruje z dowolnego innego urządzenia przechwytywania.
Na przykład, jeśli wybierzesz urządzenie pętli sprzętowej jako domyślne urządzenie do przechwytywania, możesz użyć funkcji RecordAudioStream (bez modyfikacji) w przykładzie kodu w sekcji Przechwytywanie strumienia, aby przechwycić strumień z urządzenia. (Możesz również użyć starszego interfejsu programowania audio, takiego jak funkcje multimedialne systemu Windows waveInXxx, do przechwytywania strumienia z urządzenia).
Jeśli karta dźwiękowa zawiera urządzenie sprzężenia zwrotnego, możesz użyć multimedialnego panelu sterowania systemu Windows, Mmsys.cpl, aby wyznaczyć to urządzenie jako domyślne urządzenie przechwytywania. Kroki są następujące:
Aby uruchomić Mmsys.cpl, otwórz okno wiersza polecenia i wprowadź następujące polecenie:
control mmsys.cpl
Alternatywnie możesz uruchomić Mmsys.cpl, klikając prawym przyciskiem myszy ikonę osoby mówiącej w obszarze powiadomień, który znajduje się po prawej stronie paska zadań, a następnie wybierając pozycję urządzenia rejestrujące .
Po otworze okna Mmsys.cpl kliknij prawym przyciskiem myszy dowolne miejsce na liście urządzeń rejestrujących i sprawdź, czy zaznaczono opcję Pokaż wyłączone urządzenia. (W przeciwnym razie jeśli urządzenie sprzężenia zwrotnego jest wyłączone, nie będzie ono wyświetlane na liście).
Przejrzyj listę urządzeń rejestrujących, aby zlokalizować urządzenie z funkcją sprzężenia zwrotnego (jeśli istnieje). Jeśli urządzenie sprzężenia zwrotnego jest wyłączone, włącz je, klikając prawym przyciskiem myszy na urządzenie i wybierając opcję Włącz.
Na koniec, aby wybrać urządzenie sprzężenia zwrotnego jako domyślne urządzenie przechwytywania, kliknij prawym przyciskiem myszy na urządzenie i wybierz Ustaw jako domyślne urządzenie.
Interfejs WASAPI obsługuje nagrywanie dźwięku z wyjścia niezależnie od tego, czy sprzęt audio posiada urządzenie loopenkowe, ani czy użytkownik je uaktywnił.
System Windows Vista zapewnia zarządzanie prawami cyfrowymi (DRM). Dostawcy zawartości polegają na drM, aby chronić swoją zastrzeżoną muzykę lub inną zawartość przed nieautoryzowanym kopiowaniem i innymi nielegalnymi zastosowaniami. Podobnie, zaufany sterownik audio nie zezwala urządzeniu loopback na przechwytywanie strumieni cyfrowych zawierających chronioną zawartość. System Windows Vista umożliwia odtwarzanie zawartości chronionej tylko przez zaufane sterowniki. Aby uzyskać więcej informacji na temat zaufanych sterowników i drM, zobacz dokumentację zestawu DDK systemu Windows.
Sprzężenie zwrotne WASAPI domyślnie zawiera mieszankę wszystkich odtwarzanych dźwięków, niezależnie od sesji usług terminalowych, z których pochodzi dźwięk. Na przykład można uruchomić klienta sprzężenia zwrotnego w usłudze uruchomionej w sesji 0 i przechwycić dźwięk ze wszystkich sesji użytkownika, a także dźwięk odtwarzany z sesji 0.
Pulpit zdalny umożliwia przekierowywanie dźwięku do klienta. Jest to implementowane przez utworzenie nowych urządzeń audio, które są wyświetlane tylko dla tej sesji.
Tematy pokrewne