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 tym artykule opisano sposób aktualizowania implementacji interfejsu WASAPI w celu korzystania z automatycznego routingu strumienia.
Począwszy od systemu Windows 7, za każdym razem, gdy domyślne urządzenie audio zmieni się, strumień odtwarzania audio aplikacji jest bezproblemowo przesyłany z poprzedniego domyślnego urządzenia audio do nowego domyślnego urządzenia audio . Ten transfer odbywa się automatycznie bez dodatkowego kodu aplikacji. Jednak przed wydaniem Windows 10 w wersji 1607, aplikacje używające niskopoziomowego interfejsu Windows Audio Session API (WASAPI) nie mogły korzystać z tej funkcji automatycznego routingu strumienia. Aplikacje korzystające z interfejsu WASAPI były wymagane do zaimplementowania własnej formy routingu strumienia przez dodanie dodatkowego kodu w celu wykrycia przybycia i usunięcia urządzeń audio oraz przełączenia strumienia do tych urządzeń zgodnie z potrzebami. Aplikacje korzystające z interfejsu WASAPI, które nie zaimplementowały własnego mechanizmu kierowania strumienia podczas podłączania bądź odłączania urządzeń, ryzykowały zapewnianiem mniej niż idealnego doświadczenia użytkownika.
Począwszy od systemu Windows 10 w wersji 1607, aplikacje korzystające z interfejsu WASAPI mogą korzystać z automatycznego routingu strumienia. Jeśli aplikacja korzysta z interfejsu WASAPI, zdecydowanie zaleca się zaktualizowanie aplikacji w celu skorzystania z tej nowej funkcji, wykonując następujące kroki:
System Windows 10 w wersji 1607 definiuje dwa nowe identyfikatory GUID, DEVINTERFACE_AUDIO_RENDER i DEVINTERFACE_AUDIO_CAPTURE, które można wykorzystać do aktywacji interfejsu renderowania lub przechwytywania audio z automatycznym routingiem strumienia. Uzyskaj ciągową reprezentację tych identyfikatorów GUID, wywołując StringFromIID. Przykład poniżej ukazuje pojawienie się wywołania identyfikatora GUID renderowania dźwięku.
PWSTR audioRenderGuidString; StringFromIID(DEVINTERFACE_AUDIO_RENDER, &audioRenderGuidString);
Aktywuj punkt końcowy audio, przekazując ciąg identyfikatora do funkcji WASAPI ActivateAudioInterfaceAsync. W poniższym przykładzie użyty jest identyfikator audio uzyskany w kroku 1.
//Activate the default audio interface ActivateAudioInterfaceAsync(audioRenderGuidString __uuidof(IAudioClient), NULL, completionHandler.Get(), operation.GetAddressOf()));
Zwolnij pamięć przydzieloną do przechowywania identyfikatora punktu końcowego:
CoTaskMemFree(audioRenderGuidString); //free the string memory
Po zmodyfikowaniu aplikacji w celu aktywowania interfejsu audio w sposób opisany powyżej będzie ona uczestniczyć w funkcji automatycznego routingu strumienia.
Aby zademonstrować automatyczne przekierowywanie strumienia, użyj laptopa lub tabletu wyposażonego w głośniki wewnętrzne do odtwarzania dźwięku. Dźwięk powinien być odtwarzany za pośrednictwem wewnętrznych głośników urządzenia. Podczas odtwarzania dźwięku podłącz parę słuchawek. Teraz należy usłyszeć dźwięk odtwarzany przez słuchawki. Następnie odłącz słuchawki i dźwięk powinien automatycznie kierować się z powrotem do głośników wewnętrznych.
Tematy pokrewne