Comment utiliser la ligne de commande pour changer le volume?

72

J'essaie de contrôler le volume à l'aide de mon script de programmation. Comment puis-je effectuer les opérations suivantes dans Fedora 15, Ubuntu linux?

  1. Mute / Unmute
  2. Augmenter et baisser le volume

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

YumYumYum
la source
1
Si quelqu'un vient ici de Lubuntu pour réparer ses boutons de contrôle du volume, il a placé <command>amixer -D pulse sset Master 3%+ unmute</command>le raccourci clavier approprié ~/.config/openbox/lubuntu-rc.xml, puis l'a openbox --reconfigurecorrigé
rhombidodecahedron le

Réponses:

80

Vous pouvez utiliser Amixer . C'est dans le alsa-utilspaquet sur Ubuntu et Debian.

Exécuter amixersans paramètres pour obtenir une vue d'ensemble de vos contrôles pour le périphérique par défaut.

Vous pouvez également utiliser alsamixersans paramètres (du même paquet) pour obtenir une vue d'ensemble plus visuelle. Utilisez F6 pour voir et basculer entre les périphériques. Généralement, vous pouvez choisir parmi PulseAudio et une carte son matérielle.

Puis utilisez amixeravec la setcommande pour régler le volume. Par exemple, pour définir le canal principal sur 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ètre.

Notez le %signe, sans cela il traitera la valeur comme niveau 0 - 65536.

Si PulseAudio n'est pas votre périphérique par défaut, vous pouvez utiliser le -Dcommutateur:

amixer -D pulse set Master 50%

Autres commandes utiles soulignées dans les commentaires:

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

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

Pour désactiver, activer ou désactiver le mode muet / non muet, utilisez

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

Notez également qu’il peut exister deux échelles de pourcentage différentes, l’échelle brute par défaut et, pour certains appareils, une échelle plus naturelle basée sur le décibel , également utilisée par alsamixer. Utilisez -Mpour utiliser ce dernier.

Enfin, si vous êtes uniquement intéressé par PulseAudio, vous pouvez vérifier pactl(voir l’une des autres réponses).

Dario Seidl
la source
4
Merci! il y a deux façons de le faire 1. En tant qu'excellent exemple: amixer set Master mute; amixer set Master unmute; 2. miam-y installer xdotool; xdotool key XF86AudioRaiseVolume; xdotool key XF86AudioLowerVolume;
YumYumYum
15
Et en plus, vous pouvez augmenter ou diminuer le volume de amixer set Master 10%+etamixer set Master 10%-
utilisateur le
2
Cela ne fonctionne pas dans Ubuntu.
Cerin
2
Je ne suis pas d'accord avec @Cerin. Cela fonctionne sur Ubuntu LTS 12 en ce moment. Notez que le Mmaître entrant est sensible à la casse (doit être majuscule).
ashes999
5
Cerin a raison. Cela ne fonctionne pas. Ce qui fonctionne, c'est:amixer -D pulse sset Master 50%
Shivams
30

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%-

Eric Terry
la source
1
Vous pouvez également ajouter la désactivation du son à ces dernières commandes pour l'activer automatiquement lorsque vous changez le volume (pour des raisons pratiques):amixer -D pulse sset Master unmute 5%+
Roman Golyshev
16

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

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

REMARQUE: Si vous souhaitez partager les mêmes commandes sur des hôtes différents avec des récepteurs différents, vous pouvez utiliser @DEFAULT_SINK@un récepteur 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(noms de liste avec pactl list short sinks).

UPDATE: ajouté toggle mute(merci à Don Joe).

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

Pevik
la source
5

Volume plus élevé:

amixer set Master 3%+

Volume inférieur:

amixer set Master 3%-

Bascule muet:

amixer set Master toggle

Exemple 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%-
Alexandre
la source
4

si l'utilisateur a mis le périphérique en sourdine, vous devez le réactiver. sinon le réglage du pourcentage fonctionnera mais le son est toujours désactivé

amixer set 'Master' 100% unmute
/usr/bin/amixer set 'PCM' 100% unmute
Client
la source
3

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

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

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

pactl set-sink-mute @DEFAULT_SINK@ toggle

LE: Que le premier indice soit applicable 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 "-" en face du pourcentage négatif.

Don Joe
la source
très bon merci, cela le rend parfait lorsque nous changeons beaucoup de gestionnaires de fenêtres à la volée pour de meilleurs fps de jeu, je les utilise donc je xbindkeys-confign'ai même pas besoin de redémarrer X :) (lol le sourire ... sans jeu de mots lol)
Aquarius Puissance
2

Amixer a fonctionné pour moi, mais je n'ai pas eu la belle animation que j'obtiens lorsque j'appuie sur le bouton d'augmentation du volume de mon clavier.

J'ai décidé d'utiliser xtedirectement cette touche à partir de la ligne de commande:

Monter le son: xte 'key 0x1008ff13'

Baisser le volume: xte 'key 0x1008ff11'

Muet: xte 'key 0x1008ff12'

J'ai compris 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. La clé sym peut varier d’un système à l’autre; trouver le moyen le plus fiable est xev.

Le résultat ressemble à ceci pour moi:

Evé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, XLookuptring donnant 0 octets : XFilterEvent renvoie: False

Sami Start
la source