Comando do terminal para definir o volume do áudio?

81

Eu tenho uma placa de som externa que funciona muito bem, exceto quando é conectada pela primeira vez ou quando ligo meu laptop, o volume é definido como 100%. Ou seja, o volume geral do sistema, conforme mostrado no indicador de som.

O que eu estou procurando é um comando de terminal que irá definir esse volume para 50%, para que eu possa executá-lo no login e não precisa se preocupar que o primeiro áudio que eu toco vai explodir em mim se eu esqueça de baixar o volume. Quais comandos permitem que você altere esse volume, ou seja, o que está no indicador de som?

Eu pesquisei em gsettings e dbus, mas não consegui encontrar nada que me permitisse definir o volume do sistema assim. Eu sei sobre alsamixer, mas essa não é a solução que estou procurando, pois isso não me permite alterar o volume usando o indicador de som ou as teclas multimídia do meu laptop.

    
por Marius 23.01.2012 / 23:37

3 respostas

103

Partes dessa resposta vêm de Configurando o volume de entrada de microfone usando o comando linha? , colocada aqui para sua conveniência.

Aumentar o volume em 5%

amixer -D pulse sset Master 5%+

Diminuir o volume em 5%

amixer -D pulse sset Master 5%-

Defina o volume para 50%

amixer -D pulse sset Master 50%
  

Se você estiver usando o ALSA, o amixer pode ser útil para o seu script   programação.

     

Quando soltar o comando amixer --help em um terminal, você verá   algo assim:

     

     

Dependendo da sua placa de som, os níveis podem ser diferentes dos meus, mas   você pode usar alsamixer no terminal para verificar quais níveis   e quais recursos em sua placa de som você pode chamar em um comando para definir   o volume que você quiser.

     

     

No meu exemplo, com minha placa de som principal (tenho 2: o incorporado   e uma placa de áudio PCI), os níveis são de 0 a 100, assim eu posso mudar   o volume de uma entrada / saída desejada na minha placa de som por cair em um   terminal o próximo comando:

amixer -c 0 set Front 50DB 
amixer -c 0 set Front 64DB 
     

No primeiro comando, o resultado irá definir a saída do painel frontal para   Nível de 78% e o segundo irá definir a saída do painel frontal para 100%   nível.

     

Para coletar informações relacionadas aos controles do mixer, solte   o comando amixer sem parâmetros e você obterá uma lista. Ou   indicar qual dispositivo de áudio você deseja ver uma lista de controles com    amixer -c X (onde "X" é o número do seu dispositivo de áudio).

     

BTW: Lembre-se de que os valores do banco de dados são calculados logaritmicamente e não   linearmente.

Lembre-se de que esse comando permite controlar parâmetros em qualquer dispositivo de som que você esteja usando no momento.

Boa sorte!

    
por Geppettvs D'Constanzo 24.01.2012 / 00:11
63

Você pode fazer isso usando o próprio PulseAudio (não recomendarei o uso do ALSA, porque você não poderá usar a GUI para aumentar / diminuir o volume).

Usando pactl : você pode definir os volumes para um dispositivo específico como segue:

pactl set-sink-volume 0 +10%

Isso aumenta o volume em 10%. Se você quiser 10% para baixo:

pactl set-sink-volume 0 -10%

Se você precisar do volume em 50%:

pactl set-sink-volume 0 50%

Se você precisa agitar o lugar inteiro:

pactl set-sink-volume 0 150%

Você pode usar porcentagens ou números inteiros, mas os números inteiros são lentos e podem não ser sua coisa.

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

    
por Braiam 22.11.2013 / 14:27
22

amixer set 'Master' 10%+ - para aumentar som máximo 10%

amixer set 'Master' 10%- - para diminuir som máximo 10%

amixer set 'Master' 10% - para obter 10% do som max

amixer set 'Master' 80% - para obter 80% do som max

.. etc.

Se você quiser definir o volume diferente de 'Master', verifique a lista por:

amixer scontrols

Você também pode querer verificar alsamixer e pacmd

    
por np8 22.11.2013 / 14:22