La touche de sourdine met en sourdine Alsa et PulseAudio, mais active uniquement Alsa

20

Lorsque j'appuie sur la touche muet de mon clavier, le canal maître Alsa et le canal maître PulseAudio sont tous deux coupés, une nouvelle pression ne fait que réactiver le canal maître alsa, le canal maître pulseaudio reste muet. Résultat: pas de son. Comment puis-je résoudre ce problème?

Alfred Rupp
la source

Réponses:

11

Exécutez cette commande:

amixer -D pulse set Master 1+ unmute
Pajko
la source
12
Pouvez-vous expliquer ce que cette commande permet aux autres utilisateurs de savoir?
Rétablir Monica - ζ--
1
À quoi sert ce 1+? Je n'ai pas pu trouver d'explication dans la page de manuel d'amixer.
jarno
l'utilisation de basculer au lieu de réactiver le son est utile si vous liez la commande à une clé matérielleamixer -D pulse set Master 1+ toggle
Pol Alvarez Vecino
20

c'est beaucoup plus simple cependant.

amixer -D pulse set Master Playback Switch toggle

définissez-le comme un raccourci clavier sur "Muet \ Réactiver". les commandes de volume peuvent être laissées telles quelles.

Mint 15 Mate - compris par moi-même, fonctionne très bien pour moi.

user197761
la source
Quoi qu'il en soit - a bien fonctionné sur arch linux. Son coupé et non coupé avec succès. Maintenant, j'ai lié cette commande à la commande muette sur mon ordinateur portable, car une commande par défaut ne rétablit pas tous les canaux. MERCI
Erikas
Cela a fonctionné pour moi avec Ubuntu 14.04 + i3, la réponse acceptée n'a pas fonctionné.
Ingo Bürk
1
amixer -D pulse set Master toggleça ira. Amixer attend un nom de contrôle de mélangeur simple pour la commande set ou sset, et même s'il acceptait un nom de contrôle de mélangeur complet, vous devriez citer un tel nom de plusieurs mots. Vous pouvez utiliser le modificateur facultatif playbackdans la commande comme ceci:, amixer -D pulse set Master playback togglemais il n'est pas nécessaire, s'il Mastern'a pas de capacités de capture également. En utilisant des modificateurs facultatifs, vous pouvez également contrôler les canaux auxquels la commande s'applique, si votre système est compatible avec le son surround.
jarno
5

J'ai eu le même problème en exécutant le bureau MATE sur une édition Debian Linux Mint (201204).

L'action "Augmenter le volume" n'a pas pu rétablir le son. J'ai réalisé que le problème était avec Pulseaudio, mais le paquet mate-media-gstreameret mate-settings-daemon-gstreameroù il était installé par défaut. En installant mate-media-pulseet mate-settings-daemon-pulse(qui a désinstallé mate-media-gstreameret mate-settings-daemon-gstreamer) et tadam ... l'action "Augmenter le volume" a pu réactiver le volume!

J'espère que cela fonctionnera aussi pour vous!

gari gari
la source
A fonctionné pour moi (sur Debian Jessie) et cette solution est permanente, alors que les solutions AFAIU impliquant amixer -D pulse set Master xxxsont un coup, ou doivent être mappées manuellement à un raccourci. La solution proposée ici ressemble à ce qu'elle est censée être.
Jérôme
2

C'est un problème avec pulseaudio, les commandes pour alsa ou amixer n'enverront pas correctement unmute à pulse. Lorsque les commandes alsa envoient un signal muet, il s'agit d'une commande à bascule (envoyez la même commande pour couper / réactiver le son).

Maintenant, dans pulseaudio, ils ont un code muet et un muet séparé! Beaucoup signalent que la désinstallation de pulseaudio résoudra le problème, mais pour certains, ce n'est pas vraiment une réponse acceptable (comme moi, car pulse est utile pour de nombreuses applications).

Donc, pour résoudre ce problème, nous devons créer un script,

1- Créez un nouveau document vide dans un éditeur de texte comme gedit ou mousepad,

2- Collez ce code dans le document, Soruce de code: 2

#!/bin/bash
#### Create ~/.pulse/mute if not exists
ls ~/.pulse/mute &> /dev/null
if [[ $? != 0 ]]
then
    echo "false" > ~/.pulse/mute
fi

####Create ~/.pulse/volume if not exists
ls ~/.pulse/volume &> /dev/null
if [[ $? != 0 ]]
then
    echo "65536" > ~/.pulse/volume
fi

CURVOL=`cat ~/.pulse/volume`     #Reads in the current volume
MUTE=`cat ~/.pulse/mute`          #Reads mute state

if [[ $1 == "increase" ]]
then
    CURVOL=$(($CURVOL + 3277)) #3277 is 5% of the total volume, you can change this to suit your needs.
    if [[ $CURVOL -ge 65536 ]]
    then
        CURVOL=65536        
    fi
elif [[ $1 == "decrease" ]]
then
    CURVOL=$(($CURVOL - 3277))
    if [[ $CURVOL -le 0 ]]
    then
        CURVOL=0        
    fi
elif [[ $1 == "mute" ]]
then
    if [[ $MUTE == "false" ]]
    then
        pactl set-sink-mute 0 1
        echo "true" > ~/.pulse/mute
    exit    
    else
        pactl set-sink-mute 0 0
        echo "false" > ~/.pulse/mute    
    exit
    fi
fi

pactl set-sink-volume 0 $CURVOL
echo $CURVOL > ~/.pulse/volume # Write the new volume to disk to be read the next time the script is run.

3- Nommez le fichier "volume" (aucune extension nécessaire) placez-le quelque part que vous pouvez trouver et ne le supprimerez pas comme votre dossier personnel

4- Rendez le fichier exécutable en cliquant avec le bouton droit sur le fichier, allez dans Propriétés, puis sur l'onglet Autorisations, et utilisez la case à cocher pour le marquer comme exécutable, cela permettra au script d'être exécuté. marquer-fichier-comme-exécutable-gui

5- Ensuite, nous devons lier les commandes au clavier, les commandes pour le code sont augmenter, diminuer et couper.

Alors allez dans les paramètres du clavier - comment-je-changer-mon-clavier-raccourcis-dans-xubuntu , dans la zone des raccourcis clavier, cliquez sur ajouter, puis ouvrez, ouvrez le fichier "volume" que nous avons créé, puis ajoutez la commande pour le code après le volume, la lecture de l' augmentation du volume ou le volume muet ect. mais avec l'emplacement où le fichier de code est devant comme "/ home / username / volume mute"

Affectez-le ensuite au clavier en appuyant dessus, ou si la touche est déjà utilisée,
~ Très probablement le cas ~ trouvez-les et remplacez la commande.

Les raccourcis clavier sont probablement appelés XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioMute . Étant donné que seul le muet est cassé, concentrez vos efforts sur la modification de cela en premier.

Bug: 1

Mateo
la source
Je viens de XF86AudioMutemapper à la commande amixer set Master toggle. Les touches d'augmentation et de diminution du volume sont mappées de la même manière que les amixercommandes.
Chan-Ho Suh
@ Chan-HoSuh avez-vous le même problème? vous pouvez simplement appeler la commande muet de ce script si vous le souhaitez, pour une raison quelconque, l'impulsion interceptait la sourdine sur ma machine, l'amixer envoie une bascule, qui est interprétée comme étant simplement muette par impulsion, ou simplement interceptant la touche pressée? J'utilisais un script similaire qui montrait une barre de volume avant :(, mais cela coupe et rétablit le son, et ils ont maintenant les notifications, donc tout va bien, la bascule est la façon dont il a été configuré auparavant.
Mateo
Une petite amélioration du script consiste également à forcer la réactivation du son lors de l'augmentation / diminution du volume. J'ai également ajouté «paplay /usr/share/sounds/ubuntu/stereo/message.ogg» pour obtenir des commentaires sur le volume.
dma
Peut-être que c'était différent auparavant, mais avec pulseaudio 4.0, vous pouvez utiliser des commandes comme pactl set-sink-volume 0 +5%, pactl set-sink-volume 0 -5%et pactl set-sink-mute 0 togglepour augmenter le volume, le diminuer et le basculer, respectivement.
jarno
@jarno ouais, c'était pour résoudre un problème spécifique (bug) donc il est probablement corrigé / pas aussi pertinent, mais ça reste un joli petit hack si rien d'autre ne fonctionne
Mateo
1

A travaillé pour moi le 12.10:

    #!/bin/sh
    amixer -c 0 sset Master,0 mute
    sleep 5
    amixer -D pulse set Master 1+ unmute
Brendan
la source
1

Pour les utilisateurs de KDE et kmix, si vous utilisez ce script, les commentaires visuels continueront de fonctionner:

#! /bin/bash

DBUS=qdbus 2> /dev/null

case "$1" in
  volup)
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo 0
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/increase_volume com.trolltech.Qt.QAction.trigger
        ;;
  voldn)
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo 0
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/decrease_volume com.trolltech.Qt.QAction.trigger
        ;;
  mute)
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/mute com.trolltech.Qt.QAction.trigger
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo $(${DBUS} org.kde.kmix /Mixers/0/Master_0 org.kde.KMix.Control.mute | sed 's/false/0/g;s/true/1/g')
        ;;
  *)
    echo "Usage: mixctl <volup|voldn|mute>" >&2
    exit 1
    ;;
esac

exit 0

Usage:

1) Enregistrez-le sous ~ / bin / mixctl
2) Démappez les raccourcis clavier kmix par défaut pour Volume Up / Volume Down et Mute
3) Créez trois nouveaux raccourcis clavier personnalisés nommés 'Volume Up', 'Volume Down' et 'Mute'
- > Type de raccourci: commande
-> que les commandes utilisent ~ / bin / mixctl Volup , ~ / bin / mixctl voldn et ~ / bin / mixctl mute respectivement

EleotleCram
la source
1

J'ai eu le même problème sur plusieurs machines Xubuntu 12.04 qui ont été mises à niveau vers XFCE 4.10. Voici un moyen très rapide de résoudre ce problème depuis la ligne de commande (ou avec un bashscript).

Contrairement aux solutions précédentes qui proposaient des scripts d'interruption, cette solution restaure entièrement la fonction du bouton muet / réactivé.

Exécutez simplement les deux commandes suivantes une fois, pour résoudre le problème une fois pour toutes:

$ xfconf-query --channel xfce4-mixer --property /active-card --set PlaybackInternalAudioAnalogStereoPulseAudioMixer --reset
$ xfconf-query --create --channel xfce4-keyboard-shortcuts --property /commands/custom/XF86AudioMute --type string --set 'amixer -D pulse set Master 1+ toggle'
Serge Stroobandt
la source
1

J'ai trouvé une solution simple qui fonctionne bien pour moi dans ce forum . En détail, vous devez ajouter ceci à /etc/asound.conf:

pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}

Et puis définissez un raccourci clavier pour la touche muet avec la commande étant:

amixer set Master toggle
Trung Ta
la source
0

Vous pouvez utiliser les paramètres du clavier pour définir le bouton Muet pour exécuter la commande trouvée ICI . Bien que la première méthode figurant sur ce lien était inutile pour moi, le second fonctionne très bien pour XFCE4: $ pactl set-sink-mute 0 toggle. Vous pouvez également créer un script ou un lanceur pour exécuter la commande en cliquant avec la souris.

Pour info, si vous utilisez quelque chose comme Cinnamon (et probablement d'autres ordinateurs de bureau basés sur gnome), la suggestion ci - dessus de user197761 semble meilleure, car l'applet audio de cinnamon reconnaît que le volume est coupé: amixer -D pulse set Master Playback Switch toggle(si vous aimez cette dernière commande, veuillez voter pour sa réponse, pas le mien.)

TSJNachos117
la source