58 votes

Comment basculer le son avec amixer ?

Avec Natty, j'ai toujours été en mesure d'activer ou de désactiver le volume du son "maître" avec le bouton de la souris.

amixer sset Master toggle

que j'ai liée à une liaison de bord dans CompizConfig-Manager.

Maintenant, après avoir installé Oneiric, la commande coupe le son mais ne le rétablit pas. J'ai même essayé dans le Terminal mais ça ne marche pas non plus. Il change ' Mono : Lecture 68 [78%] [-14.25dB] [off] Mais le son reste coupé et je dois le rétablir via l'indicateur de son du panneau.

Comment puis-je le faire fonctionner à nouveau ? Qu'est-ce qui a changé depuis Natty ? Quelqu'un connaît-il la commande utilisée par le 'sound-indicator' pour changer le volume du son ?

0voto

loop Points 261

L'astuce consiste à faire en sorte que l'état du haut-parleur ou du casque suive l'état de la voie principale, selon que le casque est branché ou non. Ce script le fait pour moi sur mon ancien ordinateur portable Dell Latitude :

#!/bin/bash

amixer -q sset Master toggle

MASTER_STATE=`amixer get Master | awk -F"dB] " 'NR == 5 {print $2;}'`
HEADPHONES_PLUGGED=`amixer contents | grep -A 2 Headphone\ Jack | awk -F"=" 'NR == 3 {print $2;}'`

if [[ $HEADPHONES_PLUGGED == 'on' ]]; then
    SLAVE="Headphone"
else
    SLAVE="Speaker+LO"
fi

if [[ $MASTER_STATE == '[on]' ]]; then
    amixer -q sset $SLAVE unmute
else
    amixer -q sset $SLAVE mute
fi

Vous devrez peut-être vérifier vos canaux avec amixer sur votre ordinateur et modifier les définitions SLAVE en conséquence. De même, la chaîne grep "Headphone\ Jack" dans la définition HEADPHONES_PLUGGED doit peut-être être différente.

0voto

rial Points 101

Au cas où quelqu'un chercherait une solution différente. J'ai utilisé pactl des commandes.

Pour augmenter/diminuer le volume, utilisez

pactl -- set-sink-volume 0 +10%

Et pour activer la sourdine, utilisez

pactl -- set-sink-mute 0 toggle

en savoir plus Commandes et utilisations de PACTL définir le volume audio à partir de la ligne de commande

-1voto

asdf Points 1

Brute force unmute :

for i in $(amixer |grep -o \'.*\'); do amixer set $i unmute; done

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X