Jak używać wiersza polecenia do zmiany głośności?


72

Próbuję kontrolować głośność za pomocą skryptu programowania. Jak mogę wykonać następujące czynności w Fedorze 15, Linux Ubuntu?

  1. Wycisz / wyłącz wyciszenie
  2. Zwiększanie i zmniejszanie głośności

Uwaga: należy pamiętać, że korzystam z internetowego mikrofonu / głośnika USB, a także analogowego mikrofonu / głośnika. Chcę się upewnić, że wszyscy.


1
Jeśli ktoś przyjeżdża z lubuntu, aby naprawić przyciski regulacji głośności, wstawienie <command>amixer -D pulse sset Master 3%+ unmute</command>odpowiedniego skrótu klawiaturowego, ~/.config/openbox/lubuntu-rc.xmla następnie uruchomienie openbox --reconfigurenaprawiło go dla mnie
rhombidodecahedron

Odpowiedzi:


80

Możesz użyć amixer . Jest w alsa-utilspakiecie na Ubuntu i Debianie.

Uruchom amixerbez parametrów, aby uzyskać przegląd elementów sterujących domyślnego urządzenia.

Możesz także użyć alsamixerbez parametrów (z tego samego pakietu), aby uzyskać bardziej wizualny przegląd. Użyj F6, aby zobaczyć i przełączać się między urządzeniami. Zwykle możesz mieć PulseAudio i sprzętową kartę dźwiękową do wyboru.

Następnie użyj amixerz setpoleceniem, aby ustawić głośność. Na przykład, aby ustawić kanał główny na 50%:

amixer set Master 50%

Master jest nazwą kontrolną i powinna pasować do tej, którą widzisz podczas pracy bez parametrów.

Uwaga %znak, bez niego traktuje wartość jako poziom 0 - 65536.

Jeśli PulseAudio nie jest domyślnym urządzeniem, możesz użyć -Dprzełącznika:

amixer -D pulse set Master 50%

Inne przydatne polecenia wskazane w komentarzach:

Aby zwiększyć / zmniejszyć głośność, użyj +/-numeru po numerze, użyj

amixer set Master 10%+
amixer set Master 10%-

Aby wyciszyć, anulować wyciszenie lub przełączyć między stanem wyciszenia / wyciszenia, użyj

amixer set Master mute
amixer set Master unmute
amixer set Master toggle

Zauważ też, że mogą istnieć dwie różne skale procentowe, domyślna surowa, a dla niektórych urządzeń bardziej naturalna skala oparta na decybelach , z której również korzysta alsamixer. Użyj, -Maby użyć tego ostatniego.

Na koniec, jeśli interesuje Cię tylko PulseAudio, możesz spróbować pactl(zobacz jedną z pozostałych odpowiedzi).


4
Dzięki! są na to dwa sposoby 1. Jako doskonały przykład: amixer ustaw Master mute; amixer ustawia Master unmute; 2. yum -y zainstaluj xdotool; xdotool key XF86AudioRaiseVolume; xdotool key XF86AudioLowerVolume;
YumYumYum

15
I jako dodatek, można zwiększyć lub zmniejszyć głośność amixer set Master 10%+iamixer set Master 10%-
użytkownik

2
To nie działa w Ubuntu.
Cerin

2
Nie zgadzam się z @Cerin. Działa to teraz na Ubuntu LTS 12. Pamiętaj, że Mw programie głównym rozróżniana jest wielkość liter (musi być pisana wielkimi literami).
ashes999

5
Cerin ma rację. To nie działa. Działa to:amixer -D pulse sset Master 50%
shivams

30

Aby wyciszyć:

amixer -D pulse sset Master mute

Aby wyłączyć wyciszenie:

amixer -D pulse sset Master unmute

Aby zwiększyć głośność o 5%:

amixer -D pulse sset Master 5%+

Aby zmniejszyć głośność o 5%:

amixer -D pulse sset Master 5%-


1
Możesz także dodać opcję wyciszenia do ostatnich poleceń, aby automatycznie wyciszyć dźwięk po zmianie głośności (dla wygody):amixer -D pulse sset Master unmute 5%+
Roman Golyshev

16

pactl / pacmd (w przeciwieństwie do amixer) pozwala zwiększyć głośność o ponad 100% :-).

pactl set-sink-mute 0 toggle  # toggle mute
pactl set-sink-volume 0 0     # mute (force)
pactl set-sink-volume 0 100%  # max
pactl set-sink-volume 0 +5%   # +5% (up)
pactl set-sink-volume 0 -5%   # -5% (down)

Ręczne ustawienia powyżej 100% są możliwe w pavucontrol(w przeciwieństwie do alsamixer).

UWAGA: Jeśli chcesz podzielić się z tych samych poleceń na różnych hostach z różnych zlewozmywaków, można użyć @DEFAULT_SINK@jako zlewu zamiast numeru 0:

pactl set-sink-volume @DEFAULT_SINK@ +5%

Ustawiasz domyślny zlew za pomocą pactl set-default-sink my-sink-name(nazwy nazw z pactl list short sinks).

AKTUALIZACJA: dodano toggle mute(dzięki Donowi Joe).

Źródło: askubuntu.com , wiki.archlinux.org .


5

Wyższy wolumen:

amixer set Master 3%+

Niższa głośność:

amixer set Master 3%-

Przełącznik wyciszenia:

amixer set Master toggle

Przykładowe skróty klawiszowe dla i3/ sway, polecenia są następujące exec:

bindsym XF86AudioRaiseVolume exec amixer set Master 3%+
bindsym XF86AudioLowerVolume exec amixer set Master 3%-
bindsym XF86AudioMute exec amixer set Master toggle
bindsym Ctrl+$alt+Up  exec amixer set Master 3%+
bindsym Ctrl+$alt+Down exec amixer set Master 3%-

4

jeśli użytkownik wyciszył urządzenie, musisz je „wyłączyć”. w przeciwnym razie ustawienie wartości procentowej będzie działać, ale dźwięk będzie nadal wyłączony

amixer set 'Master' 100% unmute
/usr/bin/amixer set 'PCM' 100% unmute

3

Odpowiedź pevika jest prawie poprawna dla PulseAudio, z dwiema rzeczami do wspomnienia:

  • polecenie ujemnej zmiany głośności wygeneruje błąd, ponieważ jego część minusowa zostanie zinterpretowana jako osobna (nierozpoznana) opcja; musisz wyłączyć parsowanie opcji z podwójnym minusem gdzieś przed liczbą ujemną, np. „- -5%”

  • prawdziwy stan wyciszenia to coś, co powinno być możliwe do przełączania za pomocą tego samego klawisza, co nie będzie działać, jeśli ustawisz tylko głośność na stałą wartość 0, więc właściwym poleceniem byłoby:

pactl set-sink-mute @DEFAULT_SINK@ toggle

LE: To, czy ma zastosowanie pierwsza wskazówka, może zależeć od używanej wersji PulseAudio lub od czegoś innego w dystrybucji - zauważam, że na Ubuntu 16 działa bez „-” i kończy się niepowodzeniem, jeśli dodam „-” przed ujemnym procentem.


bardzo dobrze, dzięki, że jest to idealne, gdy często zmieniamy menedżery okien w locie, aby uzyskać lepsze fps w grach, więc używam xbindkeys-configi nawet nie muszę restartować X :) (lol uśmiech ... no pun zamierzał lol)
Aquarius Power

2

amixer działał dla mnie, ale nie otrzymałem ładnej animacji, którą otrzymuję po naciśnięciu przycisku zwiększania głośności na klawiaturze.

Postanowiłem użyć, xteaby bezpośrednio nacisnąć ten klawisz z wiersza polecenia:

Zwiększ głośność: xte 'key 0x1008ff13'

Ściszanie: xte 'key 0x1008ff11'

Niemy: xte 'key 0x1008ff12'

Odkryłem klucz (ten numer heksadecymalny), używając xev.

sudo apt-get install xbindkeys xautomation
xev

a następnie naciśnij przycisk zwiększania głośności na klawiaturze, aby uzyskać klawisz. Kluczowa sym może się różnić w zależności od systemu, więc znalezienie go w Xev będzie najbardziej niezawodnym sposobem.

Wynik wygląda dla mnie następująco:

Zdarzenie KeyRelease, serial 37, syntetyczne NO, okno 0x2c00001, root 0xef, subw 0x0, czas 6660080, (566,573), root: (664,651), stan 0x0, kod klucza 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_ ekran TAK, XLookupString daje 0 bajtów : XFilterEvent zwraca: False

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.