Comment basculer le son avec l'amixer?

44

Y compris Natty, j'ai toujours été capable de basculer (couper / activer) le volume sonore "Master" avec le

amixer sset Master toggle

commande liée à une liaison de bord dans CompizConfig-Manager.

Maintenant, après l’installation de Oneiric, la commande met le son en sourdine mais ne la rétablit pas. Je l'ai même essayé dans le Terminal mais ça ne marche pas non plus. Il change de Mono: Playback 68 [78%] [-14.25dB] [off] en '... [on]' mais le son reste muet pour que je puisse réactiver le son via le "indicateur sonore" dans le panneau.

Comment puis-je le faire fonctionner à nouveau? Qu'est-ce qui a changé depuis Natty? Est-ce que quelqu'un connaît la commande utilisée par l'indicateur sonore pour faire basculer le volume sonore?

    
posée joschi 13.10.2011 - 19:48
la source

8 réponses

43

Cela fonctionne pour moi le 13.04, muet et muet:

amixer -D pulse set Master 1+ toggle

Il spécifie l’audio à impulsions pour garantir l’instauration du son, rétablit tout le son.

    
réponse donnée David C. Bishop 27.04.2013 - 08:43
la source
15

J'utilise ce script comme solution de contournement:

#!/bin/bash

CURRENT_STATE='amixer get Master | egrep 'Playback.*?\[o' | egrep -o '\[o.+\]''

if [[ $CURRENT_STATE == '[on]' ]]; then
    amixer set Master mute
else
    amixer set Master unmute
    amixer set Front unmute
    amixer set Headphone unmute
fi

J'ai fait un diff de amixer scontents avant d’appeler amixer set Master mute et après l’avoir appelé et de tout désactiver avec l’interface graphique pour déterminer ce qui devait être désactivé.

  1. Avec le son sur le type amixer scontents > ~/before (vous obtiendrez un fichier avec le statut de tous les canaux sonores)
  2. Puis basculer le volume avec amixer set Master toggle
  3. Créez un deuxième fichier d’état de canal avec amixer scontents > ~/after
  4. Basculez à nouveau le son avec amixer set Master toggle qui est censé ramener le volume au niveau avant la première commande à bascule
  5. Créez un troisième fichier avec amixer scontents > ~/afterafter

Vous avez maintenant trois fichiers qui vous indiquent l’état des canaux sonores utilisés pour le son normal, qui sont mis en sourdine par amixer set Master toggle et qui ne sont pas réactivés en réactivant à nouveau la même commande.

Pour comparer facilement les fichiers et voir les différences (les canaux désactivés et non rétablis par la suite), vous pouvez utiliser meld du Software Center. Démarrez-le, ouvrez les trois fichiers et sur la barre de défilement, vous pouvez voir où il y a des différences entre les fichiers. Utilisez les noms de canaux trouvés pour les ajouter au script décrit ci-dessus.

    
réponse donnée Jim Hunziker 24.10.2011 - 19:22
la source
5

Je ne pouvais pas faire sonner le son correctement. Que j'utilise CLI et que je mette la clé Amixer sset Master ou que j'appuie sur la touche bascule HP pavillion media, j'obtiens le même résultat: si le son est activé et désactivé, il désactivera automatiquement le canal Master ET le canal PCM. Puis, quand je frappe à nouveau la touche (cli ou key), cela active TOUJOURS le Master, mais laisse le PCM en sourdine. Pour mon installation (HP Pavilion DV6 sous Xubuntu Oneric), cela signifie que le son est désactivé, même avec le maître sous tension. Lorsqu'il est exécuté à partir de CLI - mêmes résultats. Si, avec cli, je change de PCM, il désactive également le canal principal et ne le rallume pas, bien qu'il permute correctement PCM.

Le script qui fonctionnait était:

#!/bin/bash
    if amixer -c 0 get Master | grep -q off
then
    amixer set Master unmute
    amixer set PCM unmute

else
    amixer set Master mute
fi

Ensuite, j'ai utilisé les raccourcis clavier Xubuntu (settings & gt; paramètres manager & gt; clavier gt; raccourcis applicatifs) pour accéder au script (je l'ai appelé sndfx.sh et le définir comme exécutable en cliquant avec le bouton droit sur thunar). Ensuite, je lui ai assigné le raccourci clavier HP Pavilion en appuyant sur cette touche. Maintenant, ça bascule correctement - génial. J'espère que cela aide quelqu'un d'autre.

Paix

    
réponse donnée user46082 12.02.2012 - 12:19
la source
2

Si je ne me trompe pas, il s’agit d’un bogue qui entraîne la mise en sourdine et l’arrêt des autres canaux de mixage. Pour couper le son, essayez

amixer set Master 0;

Pour réactiver le son, essayez

amixer set Master 1% +; Amixer set Master 7dB +;

    
réponse donnée Meme Notyou 24.10.2011 - 06:39
la source
2

Essayez ce fragment de script ... ça marche

lien

    
réponse donnée user33392 11.11.2011 - 15:30
la source
1

Si vous souhaitez remplacer l’amixer dans .lircrc pour votre commande à distance fonctionnant avec lirc, vous pouvez essayer les lignes suivantes. Assurez-vous d'avoir installé xmacro. Le contrôle du volume fonctionne à nouveau maintenant.

begin
        prog = irexec
        button = KEY_VOLUMEUP
        repeat = 1
        delay = 2
        config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_VOLUMEDOWN
        repeat = 1
        delay = 2
        config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_MUTE
        config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end
    
réponse donnée Jakob 15.02.2012 - 16:18
la source
0

L'astuce consiste à faire en sorte que l'état du haut-parleur ou du casque suive l'état du canal maître, 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 ;}''
HEADPHONES_PLUGGED='amixer contents | grep -A 2 Headphone\ Jack | awk -F"=" 'NR == 3 {print ;}''

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" de la définition HEADPHONES_PLUGGED peut nécessiter autre chose.

    
réponse donnée loop 13.04.2016 - 22:55
la source
-1

Brute force unmute:

for i in $(amixer |grep -o \'.*\'); do amixer set $i unmute; done
    
réponse donnée asdf 14.04.2012 - 22:55
la source

Lire d'autres questions sur les étiquettes