La tecla de silencio silencia Alsa y PulseAudio, pero solo activa Alsa

20

Cuando presiono la tecla de silencio en mi teclado, tanto el canal maestro Alsa como el canal maestro PulseAudio se silencian, al presionarlo nuevamente solo se silencia el canal maestro alsa, el canal maestro pulseaudio se mantiene silenciado. Resultado: sin sonido. ¿Cómo arreglo eso?

Alfred Rupp
fuente

Respuestas:

11

Ejecute este comando:

amixer -D pulse set Master 1+ unmute
Pajko
fuente
12
¿Puedes explicar qué hace este comando para que otros usuarios lo sepan?
Restablece a Mónica - ζ--
1
¿Para qué es eso 1+? No pude encontrar una explicación en la página de manual de amixer.
jarno
usar alternar en lugar de activar silencio es útil si está vinculando el comando a una llave de hardwareamixer -D pulse set Master 1+ toggle
Pol Alvarez Vecino
20

Sin embargo, es mucho más simple.

amixer -D pulse set Master Playback Switch toggle

configúrelo como una tecla de acceso rápido para "Silenciar \ Activar silencio". Los controles de volumen se pueden dejar como están.

Mint 15 Mate: lo descubrí yo mismo, funciona bien para mí.

usuario197761
fuente
Sea lo que sea, funcionó bien en Arch Linux. Sonido silenciado y no silenciado con éxito. Ahora vinculé este comando en el comando de silencio en mi computadora portátil, porque uno predeterminado no activa todos los canales. GRACIAS
Erikas
Esto funcionó para mí con Ubuntu 14.04 + i3, la respuesta aceptada no funcionó.
Ingo Bürk
1
amixer -D pulse set Master togglelo haré Amixer espera un nombre de control de mezclador simple para el comando set o sset, e incluso si aceptara un nombre de control de mezclador completo, tendría que citar dicho nombre de varias palabras. Puede usar el modificador opcional playbacken el comando como este: amixer -D pulse set Master playback togglepero es innecesario si Masterno tiene capacidades de captura también. Al usar modificadores opcionales, también puede controlar a qué canales se aplica el comando, si su sistema es compatible con el sonido envolvente.
jarno
5

Tuve el mismo problema al ejecutar el escritorio MATE en Linux Mint Debian Edition (201204).

La acción "Subir volumen" no pudo activar el volumen. Me di cuenta de que el problema era con Pulseaudio, pero el paquete mate-media-gstreamery mate-settings-daemon-gstreamerdónde estaba instalado por defecto. Al instalar mate-media-pulsey mate-settings-daemon-pulse(que desinstaló mate-media-gstreamery mate-settings-daemon-gstreamer) y tadam ... ¡la acción "Subir volumen" fue capaz de activar el volumen nuevamente!

¡Espero que esto también funcione para ti!

gari gari
fuente
Funcionó para mí (en Debian Jessie) y esta solución es permanente, mientras que las soluciones AFAIU involucradas amixer -D pulse set Master xxxson de una sola vez, o deben asignarse manualmente a un acceso directo. La solución propuesta aquí parece ser como debe ser.
Jérôme
2

Es un problema con pulseaudio, los comandos para alsa o amixer no enviarán unmute correctamente al pulso. Cuando los comandos alsa envían una señal de silencio, se trata de un comando de alternar (enviar el mismo comando para silenciar / activar).

¡Ahora en pulseaudio tienen código separado para silenciar y activar sonido! Muchos informan que desinstalar pulseaudio resolverá el problema, pero para algunos eso no es realmente una respuesta aceptable (como yo, porque pulse es útil para muchas aplicaciones).

Entonces, para resolver esto, necesitamos hacer un script,

1- Haga un nuevo documento vacío en un editor de texto como gedit o mousepad,

2- Pegue este código en el documento, Soruce de código: 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- Nombra el archivo "volumen" (no se necesita extensión) colócalo en un lugar que puedas encontrar y no lo eliminará como tu carpeta de inicio

4- Haga que el archivo sea ejecutable haciendo clic derecho en el archivo, vaya a Propiedades, luego a la pestaña Permisos, y use la casilla de verificación para marcarlo como ejecutable, esto permitirá que se ejecute el script. marca-archivo-como-ejecutable-gui

5- A continuación, necesitamos vincular los comandos al teclado, los comandos para el código son aumentar, disminuir y silenciar.

Vaya a la configuración del teclado: cómo-do-cambio-mi-teclado-atajos-en-xubuntu , en el área de atajos de teclado, haga clic en Agregar, luego abra, abra el archivo "volumen" que creamos, luego agregue el comando para el código después del volumen, lectura de aumento de volumen o volumen silenciado, etc. pero con la ubicación de dónde está el archivo de código antes de "/ home / username / volume mute"

Luego, asígnelo al teclado presionando la tecla, o si la tecla ya está en uso, lo
más probable es que los encuentre y reemplace el comando.

Los atajos de teclado probablemente se llaman XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioMute . Como solo se ha roto el silencio, concentra tus esfuerzos en cambiar eso primero.

Error: 1

Mateo
fuente
Acabo de XF86AudioMutemapear el comando amixer set Master toggle. Las teclas subir y bajar vol. Se asignan de manera similar a los amixercomandos.
Chan-Ho Suh
@ Chan-HoSuh, ¿tienes el mismo problema? puede llamar al comando de silencio de este script si lo desea, por alguna razón el pulso estaba interceptando el silencio en mi máquina, el amixer envía una palanca, que se interpreta como solo silencio por pulso, o simplemente interceptando la pulsación de la tecla. Estaba usando un script similar que mostraba una barra de volumen antes :(, pero esto silencia y desactiva, y ahora tienen las notificaciones, así que todo está bien, la palanca es cómo se configuró antes.
Mateo
Una pequeña mejora en el script es forzar también el silencio del aumento / disminución del volumen. También agregué 'paplay /usr/share/sounds/ubuntu/stereo/message.ogg' para obtener comentarios sobre el volumen.
dma
Tal vez era diferente antes, pero con PulseAudio 4.0 se puede utilizar comandos como pactl set-sink-volume 0 +5%, pactl set-sink-volume 0 -5%y pactl set-sink-mute 0 togglepara aumentar el volumen, bajar volumen y botón de volumen, respectivamente.
jarno
@jarno sí, esto fue para resolver un problema específico (error), por lo que es probable que se solucione / no sea tan relevante, pero sigue siendo un buen truco si nada más funciona
Mateo
1

Trabajó para mí el 12.10:

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

Para los usuarios de KDE y kmix, si usa este script, todavía tendrá la retroalimentación visual funcionando:

#! /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

Uso:

1) Guárdelo como ~ / bin / mixctl
2) Desasigne los atajos de teclado kmix predeterminados para Subir volumen / Bajar volumen y Silenciar
3) Cree tres nuevos atajos de teclado personalizados llamados 'Subir volumen', 'Bajar volumen' y 'Silenciar'
- > tipo de acceso directo: comando
-> ya que los comandos usan ~ / bin / mixctl volup , ~ / bin / mixctl voldn y ~ / bin / mixctl mute respectivamente

EleotleCram
fuente
1

Tuve el mismo problema en varias máquinas Xubuntu 12.04 que se actualizaron a XFCE 4.10. Aquí hay una manera muy rápida de resolver este problema desde la línea de comandos (o con un bashscript).

A diferencia de las soluciones anteriores que ofrecen scripts de stop-gap, esta solución restaura completamente la función del botón de silencio / silencio.

Simplemente emita los dos comandos siguientes una vez, para resolver el problema de una vez por todas:

$ 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
fuente
1

Encontré una solución simple que me funciona bien en este foro . En detalle, debe agregar esto a /etc/asound.conf:

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

Y luego configure un atajo de teclado para la tecla de silencio con el comando:

amixer set Master toggle
Trung Ta
fuente
0

Puede usar la configuración del teclado para configurar el botón de silencio para ejecutar el comando que se encuentra AQUÍ . Aunque el primer método que figura en este enlace era inútil para mí, el segundo funciona muy bien para XFCE4: $ pactl set-sink-mute 0 toggle. También puede crear un script o iniciador para ejecutar el comando al hacer clic con el mouse.

Para su información, si está usando algo como Cinnamon (y probablemente otros escritorios basados ​​en gnomos), la sugerencia anterior del usuario197761 parece mejor, ya que el applet de sonido de canela reconoce que el volumen está silenciado: amixer -D pulse set Master Playback Switch toggle(si le gusta este último comando, por favor vote su respuesta, no es mio.)

TSJNachos117
fuente