Strona główna
» WINDOWS
»
Jak automatycznie wyciszyć dźwięk po odłączeniu słuchawek w systemie Windows 10
Jak automatycznie wyciszyć dźwięk po odłączeniu słuchawek w systemie Windows 10
System Windows 10 nie ma uniwersalnego przełącznika wyciszającego dźwięk po odłączeniu słuchawek. Skrypt programu PowerShell może nasłuchiwać zdarzeń zmiany urządzenia i wyciszać domyślny punkt końcowy odtwarzania po jego usunięciu. Można go uruchomić ręcznie lub zlecić Harmonogramowi zadań uruchomienie go po zalogowaniu.
Skrypt wycisza odtwarzanie, ale nie wstrzymuje działania aplikacji. Monitoruje również zmiany ustawień urządzenia na całym komputerze, a nie tylko na słuchawkach, więc inne urządzenia mogą go aktywować.
Sprawdź, jak system Windows wykrywa słuchawki
Otwórz Start > Ustawienia > System > Dźwięk i sprawdź, czy słuchawki są wyświetlane osobno w sekcji Wyjście . System Windows pozwala wybrać wyjście i dostosować głośność, ale nie oferuje automatycznego wyciszania po odłączeniu. Informacje na temat sterowania urządzeniem znajdziesz w przewodniku po ustawieniach dźwięku firmy Microsoft .
Strona Dźwięk umożliwia wybór wyjścia; nie tworzy automatycznej reguły wyciszenia.
Sprawdź w programie narzędziowym audio komputera, czy jest dostępne ustawienie dla gniazda słuchawkowego. Dostępność zależy od sterownika audio. Fizyczna wtyczka w gnieździe analogowym nie jest sama w sobie urządzeniem Plug and Play. Niektóre adaptery audio zgłaszają obecność gniazda systemowi Windows, a inne nie, więc ten skrypt może pominąć odłączenie wtyczki 3,5 mm. Firma Microsoft wyjaśnia tę różnicę w dokumentacji dotyczącej punktów końcowych audio . Zestawy słuchawkowe USB lub Bluetooth mogą również wyzwalać zdarzenie urządzenia, gdy system Windows je dodaje lub usuwa, w zależności od urządzenia i sterownika.
Zapisz skrypt programu PowerShell
Otwórz oryginalny skrypt PSAutoMute autorstwa Prateeka Singha i sprawdź kod przed jego uruchomieniem. Używa on interfejsów audio systemu Windows do wyciszenia domyślnego punktu końcowego odtwarzania multimediów i nasłuchuje zdarzeń WMI.
Zapisz go w folderze stałym, takim jak C:\Scripts. W Notatniku wybierz Plik > Zapisz jako , nadaj plikowi nazwę MuteWhenHeadphonesDisconnect.ps1i ustaw opcję Zapisz jako typ na Wszystkie pliki (*.*) . Upewnij się, że Eksplorator plików wyświetla .ps1rozszerzenie, a nie .ps1.txt.
Zapisz z rozszerzeniem .ps1 i wybierz opcję Wszystkie pliki, aby Notatnik nie dopisywał rozszerzenia .txt.
Klasa zdarzeń skryptu jest szeroka. Według Microsoftu Win32_DeviceChangeEventobejmuje zmiany urządzeń w całym komputerze: typ zdarzenia 2 oznacza nadejście, a typ 3 usunięcie. Ten skrypt wycisza dźwięk po każdym usunięciu i włącza dźwięk po każdym nadejściu, jeśli dźwięk jest wyciszony. Dysk USB może zatem włączyć dźwięk, podobnie jak usunięcie myszy; skrypt nie jest w stanie stwierdzić, czy głośniki zostały wyciszone samodzielnie. Zapoznaj się z dokumentacją klas zdarzeń firmy Microsoft , aby zapoznać się z tymi definicjami.
Skrypty programu PowerShell to kod wykonywalny, dlatego najpierw sprawdź plik. Na komputerze osobistym, na którym masz uprawnienia do jego uruchomienia, użyj go RemoteSignedtylko do tego procesu programu PowerShell; nie zmieni on trwałej polityki maszyny ani użytkownika. Jeśli system Windows nadal blokuje pobrany plik, sprawdź go i uruchom Unblock-File -Path "C:\Scripts\MuteWhenHeadphonesDisconnect.ps1". Firma Microsoft wyjaśnia te zakresy w swoich wytycznych dotyczących zasad wykonywania . Nie należy zastępować zasad obowiązujących w pracy lub szkole.
Uruchom i przetestuj
Otwórz program Windows PowerShell w menu Start jako zwykły użytkownik, przejdź do folderu skryptów, a następnie uruchom monitor:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force
Set-Location C:\Scripts
.\MuteWhenHeadphonesDisconnect.ps1
Zastąp ścieżkę do folderu, jeśli zapisałeś plik w innym miejscu. Skrypt czeka w pętli, więc okno programu PowerShell jest cały czas aktywne. Pozostaw je otwarte podczas testowania; naciśnij Ctrl+C, aby je zatrzymać.
Uruchom monitor w programie Windows PowerShell i nie zamykaj jego okna.
Zacznij od niskiej głośności. Odłącz i ponownie podłącz słuchawki, a następnie sprawdź, czy system Windows wycisza, a następnie przywraca dźwięk. Ponieważ odbiornik jest dostępny w całym systemie, zmiany w innych urządzeniach mogą powodować tę samą reakcję. Jeśli gniazdo analogowe nic nie robi, sterownik audio może nie zgłaszać usunięcia urządzenia. Jeśli problem dotyczy niewłaściwego urządzenia odtwarzającego, sprawdź, który punkt końcowy jest ustawiony jako domyślny w systemie Windows; skrypt kontroluje ten punkt końcowy, a nie każde wyjście specyficzne dla aplikacji.
Uruchom po zalogowaniu
Otwórz Harmonogram zadań , wybierz opcję Utwórz podstawowe zadanie i nadaj zadaniu nazwę.
Wybierz opcję „Kiedy się loguję” jako wyzwalacz. Spowoduje to uruchomienie monitora w sesji użytkownika, w której dostępne jest urządzenie odtwarzające. Firma Microsoft dokumentuje odpowiedni -AtLogOnwyzwalacz w sekcji „New-ScheduledTaskTrigger” .
Wybierz opcję Uruchom program . Ustaw opcję Program/skrypt na powershell.exe. W polu Dodaj argumenty wpisz -NoProfile -ExecutionPolicy RemoteSigned -File "C:\Scripts\MuteWhenHeadphonesDisconnect.ps1", zmieniając ścieżkę na pełną lokalizację pliku.
Zakończ działanie kreatora, a następnie otwórz właściwości zadania i ustaw je tak, aby uruchamiało się tylko po zalogowaniu. Przetestuj je przy następnym logowaniu, zanim ukryjesz lub zminimalizujesz okno. Nie uruchamiaj drugiej kopii, gdy uruchomiona jest zaplanowana kopia.
Wybierz opcję Uruchom program dla zadania logowania, a następnie wskaż program PowerShell i swój skrypt.
Kiedy zastosować inną metodę
To obejście problemu sprawdza się najlepiej, gdy dopuszczalne jest zachowanie związane z szeroko pojętą zmianą urządzenia. Interfejs API Core Audio firmy Microsoft zawiera IMMNotificationClientinterfejs do powiadomień o dodawaniu i usuwaniu punktów końcowych audio, ale powiązany skrypt go nie implementuje. Sterownik musi również ujawnić zmianę fizycznego gniazda jako zdarzenie punktu końcowego. W przypadku zachowania wyłącznie dla słuchawek należy użyć narzędzia producenta komputera, które wyraźnie obsługuje wykrywanie gniazda, lub narzędzia filtrującego odpowiedni punkt końcowy audio. Zapoznaj się z dokumentacją IMMNotificationClient firmy Microsoft .
Aby cofnąć automatyczne uruchomienie, wyłącz lub usuń zadanie w Harmonogramie zadań. Aby zatrzymać ręcznie uruchomiony skrypt, naciśnij Ctrl+C w jego oknie programu PowerShell.