desenv-web-rp.com

Como usar a linha de comando para alterar o volume?

Estou tentando controlar o volume usando meu script de programação. Como posso fazer o seguinte no Fedora 15, Ubuntu linux?

  1. Sem som/Sem som
  2. Aumentar e diminuir volume

Nota: Observe que eu uso um microfone/alto-falante USB da web e também um microfone/alto-falante analógico. Quero me candidatar a todos para ter certeza.

78
user11085

Você pode usar amixer . Está no alsa-utils pacote no Ubuntu e Debian.

Execute amixer sem parâmetros para obter uma visão geral sobre seus controles para o dispositivo padrão.

Você também pode usar alsamixer sem parâmetros (do mesmo pacote) para obter uma visão geral mais visual. Use F6 para ver e alternar entre dispositivos. Geralmente, você pode ter o PulseAudio e uma placa de som de hardware para selecionar.

Em seguida, use amixer com o comando set para definir o volume. Por exemplo, para definir o canal principal como 50%:

amixer set Master 50%

Master é o nome do controle e deve corresponder ao que você vê ao executar sem parâmetros.

Note o % sinal, sem ele tratará o valor como nível 0 - 65536.

Se o PulseAudio não for o seu dispositivo padrão, você poderá usar o -D interruptor:

amixer -D Pulse set Master 50%

Outros comandos úteis apontados nos comentários:

Para aumentar/diminuir o volume, use +/- após o número, use

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

Para silenciar, ativar ou alternar entre o estado mudo/não mudo, use

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

Observe também que pode haver duas escalas percentuais diferentes, a padrão bruta e, para alguns dispositivos, uma escala mais natural baseada em decibéis , que também é usada por alsamixer. Usar -M para usar o último.

Por fim, se você estiver interessado apenas no PulseAudio, convém verificar pactl (veja uma das outras respostas).

88
Dario Seidl

Para silenciar:

amixer -D Pulse sset Master mute

Para ativar o som:

amixer -D Pulse sset Master unmute

Para aumentar o volume em 5%:

amixer -D Pulse sset Master 5%+

Para diminuir o volume em 5%:

amixer -D Pulse sset Master 5%-
33
Eric Terry

pactl / pacmd (ao contrário de amixer) permite aumentar o volume acima de 100% :-).

pactl set-sink-mute 0 toggle  # toggle mute, also you have true/false
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)

Configurações manuais acima de 100% são possíveis em pavucontrol (diferente de alsamixer).

Nota : se você deseja compartilhar os mesmos comandos em hosts diferentes com sumidouros diferentes, você pode usar @[email protected] como um coletor em vez do número 0:

pactl set-sink-volume @[email protected] +5%

Você define seu coletor padrão com pactl set-default-sink my-sink-name (lista nomes com pactl list short sinks).

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

18
pevik

Maior volume:

amixer set Master 3%+

Volume mais baixo:

amixer set Master 3%-

Alternar sem som:

amixer set Master toggle

Exemplo de combinações de teclas para i3 / sway , os comandos estão após 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%-
5
Alexander

A resposta de pevik está quase correta no PulseAudio, com duas coisas a serem mencionadas:

  • o comando de alteração de volume negativo gerará um erro porque a parte menos algo dele será interpretada como uma opção separada (não reconhecida); você precisa desativar a opção de análise com um duplo menos em algum lugar antes do número negativo, por exemplo, "- -5%"

  • o verdadeiro estado mudo é algo que deve ser possível alternar com a mesma chave, o que não funcionará se você estiver apenas configurando o volume para um valor fixo de 0; portanto, o comando certo para isso seria:

pactl set-sink-mute @[email protected] toggle

LE: Se a primeira dica é aplicável, pode depender da versão do PulseAudio que você está executando ou de outra coisa na distribuição - notei que no Ubuntu 16 ele funciona sem o "-" e falha se eu adicionar "-" em frente à porcentagem negativa.

3
Don Joe

se o usuário tiver silenciado o dispositivo, você deverá "desativá-lo". caso contrário, definir a porcentagem funcionará, mas o som ainda está desligado

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

o amixer funcionou para mim, mas não recebi a animação agradável que recebo quando pressiono o botão de aumento de volume no teclado.

Decidi usar xte para pressionar diretamente essa tecla na linha de comando:

Aumentar o volume: xte 'key 0x1008ff13'

Volume baixo: xte 'key 0x1008ff11'

Sem som: xte 'key 0x1008ff12'

Eu descobri o keyym (esse número hexadecimal) usando xev.

Sudo apt-get install xbindkeys xautomation
xev

e pressione o botão de aumento de volume do teclado para obter o teclado. O sym principal pode variar de sistema para sistema, portanto, encontrá-lo no xev será a maneira mais confiável.

O resultado é assim para mim:

Evento KeyRelease, serial 37, NO sintético, janela 0x2c00001, raiz 0xef, subw 0x0, tempo 6660080, (566,573), raiz: (664,651), estado 0x0, código de chave 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES, XLookupString fornece 0 bytes : XFilterEvent retorna: False

2
Sami Start