Come utilizzare la riga di comando per modificare il volume?


72

Sto cercando di controllare il volume usando il mio script di programmazione. Come posso fare quanto segue in Fedora 15, Ubuntu Linux?

  1. Muto / Riattiva
  2. Volume su e volume giù

Nota: si noti che utilizzo un microfono / altoparlante USB Web e anche un microfono / altoparlante analogico. Voglio fare domanda a tutti per essere sicuri.


1
Se qualcuno viene qui da Lubuntu per riparare i loro pulsanti di controllo del volume, inserendo <command>amixer -D pulse sset Master 3%+ unmute</command>il relativo tasto ~/.config/openbox/lubuntu-rc.xmle quindi eseguendolo openbox --reconfigurerisolto per me
rhombidodecahedron

Risposte:


80

Puoi usare amixer . È nel alsa-utilspacchetto su Ubuntu e Debian.

Esegui amixersenza parametri per ottenere una panoramica dei controlli per il dispositivo predefinito.

Puoi anche usare alsamixersenza parametri (dallo stesso pacchetto) per avere una visione più visiva. Usa F6 per vedere e passare da un dispositivo all'altro. Comunemente potresti avere PulseAudio e una scheda audio hardware tra cui scegliere.

Quindi utilizzare amixercon il setcomando per impostare il volume. Ad esempio, per impostare il canale principale su 50%:

amixer set Master 50%

Master è il nome del controllo e deve corrispondere a quello che si vede quando si esegue senza parametri.

Nota il %segno, senza di esso tratterà il valore come livello 0 - 65536.

Se PulseAudio non è il dispositivo predefinito, è possibile utilizzare l' -Dinterruttore:

amixer -D pulse set Master 50%

Altri comandi utili sottolineati nei commenti:

Per aumentare / ridurre il volume utilizzare +/-dopo il numero, utilizzare

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

Per disattivare, riattivare l'audio o alternare tra lo stato disattivato / non attivato, utilizzare

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

Si noti inoltre che potrebbero esserci due diverse scale percentuali, quella di default grezza e per alcuni dispositivi una scala più naturale basata sul decibel , che viene anche utilizzato da alsamixer. Utilizzare -Mper usare quest'ultimo.

Infine, se sei interessato solo a PulseAudio, potresti voler dare un'occhiata pactl(vedi una delle altre risposte).


4
Grazie! ci sono due modi per farlo 1. Come esempio eccellente: amixer set Master mute; set amixer Master riattivato; 2. yum -y installa xdotool; chiave xdotool XF86AudioRaiseVolume; chiave xdotool XF86AudioLowerVolume;
YumYumYum

15
E come aggiunta, puoi aumentare o diminuire il volume di amixer set Master 10%+eamixer set Master 10%-
utente

2
Questo non funziona in Ubuntu.
Cerin,

2
Non sono d'accordo @Cerin. Questo funziona su Ubuntu LTS 12 in questo momento. Si noti che il Mmaster in fa distinzione tra maiuscole e minuscole (deve essere maiuscolo).
ashes999,

5
Cerin ha ragione. Questo non funziona. Ciò che funziona è:amixer -D pulse sset Master 50%
Shivams,

30

Per disattivare l'audio:

amixer -D pulse sset Master mute

Per riattivare l'audio:

amixer -D pulse sset Master unmute

Per aumentare il volume del 5%:

amixer -D pulse sset Master 5%+

Per abbassare il volume del 5%:

amixer -D pulse sset Master 5%-


1
Puoi anche aggiungere riattiva l'audio a questi ultimi comandi per riattivare automaticamente l'audio quando cambi volume (per comodità):amixer -D pulse sset Master unmute 5%+
Roman Golyshev,

16

pactl / pacmd (a differenza amixer) consente di aumentare il volume oltre il 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)

Impostazioni manuali superiori al 100% sono possibili in pavucontrol(a differenza alsamixer).

NOTA: se si desidera condividere gli stessi comandi su host diversi con diversi sink, è possibile utilizzare @DEFAULT_SINK@come sink anziché numero 0:

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

Si imposta il sink predefinito con pactl set-default-sink my-sink-name(elenca i nomi con pactl list short sinks).

AGGIORNAMENTO: aggiunto toggle mute(grazie a Don Joe).

Fonte: askubuntu.com , wiki.archlinux.org .


5

Volume più alto:

amixer set Master 3%+

Volume più basso:

amixer set Master 3%-

Attiva / disattiva audio:

amixer set Master toggle

I tasti di esempio per i3/ sway, i comandi sono dopo 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

se l'utente ha disattivato l'audio del dispositivo, è necessario "ripristinarlo". altrimenti l'impostazione della percentuale funzionerà ma il suono è ancora spento

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

3

La risposta di pevik è quasi corretta per PulseAudio, con due cose da menzionare:

  • il comando di modifica del volume negativo genererà un errore perché la parte negativa di qualcosa verrà interpretata come un'opzione separata (non riconosciuta); devi disattivare l'opzione di analisi con un doppio meno da qualche parte prima del numero negativo, ad es. "- -5%"

  • il vero stato di silenziamento è qualcosa che dovrebbe essere possibile alternare con la stessa chiave, che non funzionerà se si sta semplicemente impostando il volume su un valore fisso pari a 0, quindi il comando giusto per questo sarebbe:

pactl set-sink-mute @DEFAULT_SINK@ toggle

LE: Se il primo suggerimento è applicabile può dipendere dalla versione di PulseAudio in esecuzione o da qualcos'altro nella distribuzione - noto che su Ubuntu 16 funziona senza il "-" e fallisce se aggiungo "-" di fronte alla percentuale negativa.


molto bene grazie, che lo rende perfetto quando cambiamo molto i gestori delle finestre al volo per migliori giochi di fps, quindi uso xbindkeys-confige non devo nemmeno riavviare X :) (lol il sorriso ... nessun gioco di parole lol)
Aquarius Potenza

2

amixer ha funzionato per me ma non ho avuto la bella animazione che ho quando premo il pulsante di aumento del volume sulla tastiera.

Ho deciso di utilizzare xteper premere direttamente quel tasto dalla riga di comando:

Aumenta volume: xte 'key 0x1008ff13'

Volume basso: xte 'key 0x1008ff11'

Mute: xte 'key 0x1008ff12'

Ho capito il keysym (quel numero esadecimale) usando xev.

sudo apt-get install xbindkeys xautomation
xev

e quindi premere il pulsante di aumento del volume sulla tastiera per ottenere il keyym. Il sym chiave può variare da sistema a sistema, quindi trovarlo da xev sarà il modo più affidabile.

Il risultato è simile al mio per me:

KeyRelease event, serial 37, NO sintetico, finestra 0x2c00001, root 0xef, subw 0x0, tempo 6660080, (566.573), root: (664.651), stato 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES, XLookupString 0 : XFilterEvent restituisce: Falso

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.