Czy istnieje sposób wyciszenia dźwięku z komputera za każdym razem, gdy odłączam słuchawki (tak jak robi to telefon), aby zatrzymać dźwięk i odtwarzać go z głośników?
sound
headphones
speakers
audio-jack
Dandyman
źródło
źródło
Odpowiedzi:
Jak wykryć odłączenie
Zasadniczo działało dla mnie:
Dla mnie różnica polegała na tym, że „Węzeł 0x16” w sekcji „Wzory wzmacniacza”:
Oparłem więc wykrycie na znalezionej różnicy.
Howto mute
Dzięki tej wiedzy możesz mieć skrypt działający w tle. Po odłączeniu skrypty wyciszają głośniki, jak przy użyciu
amixer sset Master playback 0%
(lub dowolnego innego polecenia).Możesz
chmod +x scriptname.sh
ustawić go jako wykonywalny i umieścić w aplikacjach startowych. Trzeba będzie jednak dostosować wykrywanie odłączenia, znajdując własną różnicę w/proc/asound/card0/codec#0
(może nawet zmienić tutaj liczby dla wielu kart dźwiękowych.Powiązane linki:
https://wiki.ubuntu.com/Audio/PreciseJackDetectionTesting
/unix/25776/detecting-headphone-connection-disconnection-in-linux
Jak automatycznie zmienić poziom głośności podczas odłączania / podłączania słuchawek?
źródło
while
pętlą (bez nawet małej instrukcji snu) działającego nieprzerwanie w tle nie jest idealnym rozwiązaniem; jest to brzydkie i pospolite obejście, oprócz bycia procesorem i zabójcą baterii. Próbowałem i przeszedłem z normalnej sytuacji stałego wykorzystania 5% procesora (z przeglądarką, spotify, terminalem, IDE, telegramem i innymi otwartymi aplikacjami) do 45% stałego użycia procesora.acpi_listen
, jak sugerowano w jednym z łączy w tej odpowiedzi.To działało dla mnie na Ubuntu 14.04:
„gdy słuchawki są wyłączone, wycisz je. Włóż słuchawki i zwiększ głośność. Wyjmij słuchawki i sprawdź, czy nie jest wyciszony”.
Źródło: RevDrStrangelove na https://www.reddit.com/r/LifeProTips/comments/369k76/lpt_request_automaticly_mute_laptop_after_headset/
źródło
W przypadku Ubuntu-16.10 dokonałem niewielkiej zmiany w tej odpowiedzi .
źródło
Jeśli masz problemy z przechwytywaniem zdarzeń,
/etc/acpi/handler.sh
zobacz moją odpowiedź . Jest również bez kodów urządzeń jakoNode 0x16
.źródło