web-dev-qa-db-fra.com

Comment utiliser la ligne de commande pour changer le volume?

J'essaie de contrôler le volume à l'aide de mon script de programmation. Comment puis-je faire ce qui suit dans Fedora 15, Ubuntu linux?

  1. Activer/désactiver le son
  2. Augmenter et diminuer le volume

Remarque: Veuillez noter que j'utilise un microphone/haut-parleur Web USB et également un microphone/haut-parleur analogique. Je veux m'appliquer à tous pour être sûr.

78
user11085

Vous pouvez utiliser amixer . C'est dans le alsa-utils package sur Ubuntu et Debian.

Exécutez amixer sans paramètres pour obtenir une vue d'ensemble de vos commandes pour le périphérique par défaut.

Vous pouvez également utiliser alsamixer sans paramètres (du même package) pour obtenir une vue d'ensemble plus visuelle. Utilisez F6 pour voir et basculer entre les appareils. Généralement, vous pouvez avoir PulseAudio et une carte son matérielle à sélectionner.

Utilisez ensuite amixer avec la commande set pour régler le volume. Par exemple, pour régler le canal maître à 50%:

amixer set Master 50%

Master est le nom du contrôle et doit correspondre à celui que vous voyez lorsque vous exécutez sans paramètres.

Noter la % signe, sans lui, il traitera la valeur comme un niveau de 0 à 65536.

Si PulseAudio n'est pas votre appareil par défaut, vous pouvez utiliser le -D commutateur:

amixer -D Pulse set Master 50%

Autres commandes utiles signalées dans les commentaires:

Pour augmenter/diminuer le volume, utilisez +/- après le numéro, utilisez

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

Pour désactiver, réactiver ou basculer entre l'état désactivé/non activé, utilisez

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

Notez également qu'il peut y avoir deux échelles de pourcentage différentes, la valeur brute par défaut et pour certains appareils une échelle plus naturelle basée sur les décibels , qui est également utilisée par alsamixer. Utilisation -M pour utiliser ce dernier.

Enfin, si vous êtes uniquement intéressé par PulseAudio, vous voudrez peut-être consulter pactl (voir l'une des autres réponses).

88
Dario Seidl

Pour couper le son:

amixer -D Pulse sset Master mute

Pour réactiver le son:

amixer -D Pulse sset Master unmute

Pour augmenter le volume de 5%:

amixer -D Pulse sset Master 5%+

Pour baisser le volume de 5%:

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

pactl / pacmd (contrairement à amixer) permet d'augmenter le volume de plus 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)

Des réglages manuels supérieurs à 100% sont possibles dans pavucontrol (contrairement à alsamixer).

Remarque : Si vous souhaitez partager les mêmes commandes sur différents hôtes avec différents récepteurs, vous pouvez utiliser @DEFAULT_SINK@ comme un évier au lieu d'un nombre 0:

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

Vous définissez votre récepteur par défaut avec pactl set-default-sink my-sink-name (liste des noms avec pactl list short sinks).

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

18
pevik

Volume plus élevé:

amixer set Master 3%+

Volume inférieur:

amixer set Master 3%-

Bascule muet:

amixer set Master toggle

Exemples de raccourcis clavier pour i3 / sway , les commandes sont aprè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

pevik la réponse est presque correcte pour PulseAudio, avec deux choses à mentionner:

  • la commande de changement de volume négatif générera une erreur car sa partie moins quelque chose sera interprétée comme une option distincte (non reconnue); vous devez désactiver l'analyse des options avec un double moins quelque part avant le nombre négatif, par exemple "- -5%"

  • le véritable état muet est quelque chose qui devrait être possible de basculer avec la même clé, ce qui ne fonctionnera pas si vous définissez simplement le volume sur une valeur fixe de 0, donc la bonne commande pour cela serait:

pactl set-sink-mute @DEFAULT_SINK@ toggle

LE: l'applicabilité du premier indice peut dépendre de la version de PulseAudio que vous utilisez ou de quelque chose d'autre dans la distribution - je remarque que sur Ubuntu 16 cela fonctionne sans le "-" et échoue si j'ajoute "-" devant le pourcentage négatif.

3
Don Joe

si l'utilisateur a désactivé le son de l'appareil, vous devez le "réactiver". sinon, le réglage du pourcentage fonctionnera mais le son est toujours coupé

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

amixer a fonctionné pour moi mais je n'ai pas obtenu l'animation Nice que j'obtiens lorsque j'appuie sur le bouton d'augmentation du volume de mon clavier.

J'ai décidé d'utiliser xte pour appuyer directement sur cette touche depuis la ligne de commande:

Monter le son: xte 'key 0x1008ff13'

Baisser le volume: xte 'key 0x1008ff11'

Muet: xte 'key 0x1008ff12'

J'ai trouvé le keysym (ce nombre hexadécimal) en utilisant xev.

Sudo apt-get install xbindkeys xautomation
xev

puis appuyez sur le bouton d'augmentation du volume de votre clavier pour obtenir le clavier. Le sym clé peut varier d'un système à l'autre, donc le trouver à partir de xev sera le moyen le plus fiable.

Le résultat ressemble à ceci pour moi:

Événement KeyRelease, série 37, NO synthétique, fenêtre 0x2c00001, racine 0xef, subw 0x0, heure 6660080, (566,573), racine: (664,651), état 0x0, code clé 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES, XLookupString donne 0 octets : XFilterEvent renvoie: False

2
Sami Start