Mute отключает звук Alsa и PulseAudio, но отключает только Alsa

19

Когда я нажимаю клавишу отключения звука на моей клавиатуре, как главный мастер Alsa, так и основной канал PulseAudio приглушаются, при повторном нажатии его только включается основной канал alsa, ведущий канал pulseaudio держится. Результат: нет звука. Как это исправить?

    
задан Alfred Rupp 03.04.2012 в 22:51
источник

10 ответов

10

Запустите эту команду:

amixer -D pulse set Master 1+ unmute
    
ответ дан Pajko 10.08.2012 в 12:00
источник
19

, это намного проще.

amixer -D pulse set Master Playback Switch toggle

установите это как горячую клавишу для «Mute \ Unmute». регуляторы громкости могут быть оставлены так, как они есть.

Mint 15 Mate - разобрался в себе, отлично работает для меня.

    
ответ дан user197761 01.10.2013 в 16:45
5

У меня была такая же проблема с запуском рабочего стола MATE в Linux Mint Debian Edition (201204).

Действие «Увеличение громкости» не смогло включить звук. Я понял, что проблема связана с Pulseaudio, но пакет mate-media-gstreamer и mate-settings-daemon-gstreamer , установленный по умолчанию. Установив mate-media-pulse и mate-settings-daemon-pulse (которые удалили mate-media-gstreamer и mate-settings-daemon-gstreamer ) и tadam ... Действие «Увеличение вверх» способно снова включить громкость!

Я надеюсь, что это тоже сработает для вас!

    
ответ дан gari gari 03.12.2012 в 23:01
2

Это проблема с pulseaudio, команды для alsa или amixer не будут правильно посылать unmute на пульс. Когда команды alsa посылают сигнал без звука, это команда переключения (посылает ту же команду для отключения / включения звука).

Теперь в pulseaudio у них есть отдельный отключение и включение звука! Многие сообщают, что удаление установки pulseaudio решит проблему, но для некоторых это не очень приемлемый ответ (например, я, потому что импульс полезен для многих приложений).

Итак, чтобы решить это, нам нужно создать скрипт,

1- Создайте новый пустой документ в текстовом редакторе, например gedit или mousepad,

2- Вставьте этот код в документ, Soruce of 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- Назовите файл "volume" (не требуется расширение) поместите его где-нибудь, где вы можете найти, и не удалите его, как ваша домашняя папка

4- Сделайте файл исполняемым, щелкнув правой кнопкой мыши по файлу, перейдите в "Свойства", затем вкладку "Разрешения" и установите этот флажок, чтобы пометить его исполняемым, это позволит запустить сценарий. mark-file-as-executible-gui

5 Далее нам нужно связать команды с клавиатурой, команды для кода будут увеличиваться, уменьшаться и отключаться.

Итак, перейдите к настройкам клавиатуры - how-do- i-change-my-keyboard-shortcuts-in-xubuntu . В области ярлыков клавиатуры нажмите "Добавить", затем откройте "Открыть" файл тома, который мы создали, затем добавим команду для кода после тома, прочитав увеличение объема или отключить звук . но с указанием местоположения файла кода перед тем, как он будет "/ home / username / volume mute"

Затем назначьте его клавиатуре, нажав клавишу или, если ключ уже используется,
~ Скорее всего, случай ~ найдет их и заменит команду.

Ключевыми ярлыками, скорее всего, называются XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioMute . Поскольку только немой нарушается, сконцентрируй свои усилия на том, чтобы сначала изменить это.

Ошибка: 1

    
ответ дан Mateo 03.04.2012 в 23:59
1

См:

Ссылка

xfce4-mixer имеет параметр для active-card , который должен быть установлен в Pulseaudio, иначе он будет использовать Alsa.

    
ответ дан Grumbel 04.11.2012 в 18:56
1

Работал для меня 12.10:

    #!/bin/sh
    amixer -c 0 sset Master,0 mute
    sleep 5
    amixer -D pulse set Master 1+ unmute
    
ответ дан user123241 21.03.2013 в 21:24
1

Для пользователей KDE и kmix, если вы используете этот скрипт, вы по-прежнему будете иметь визуальную обратную связь:

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

Использование:

1) Сохраните его как ~ / bin / mixctl
2) Отмените сочетания клавиш по умолчанию kmix для увеличения громкости / уменьшения громкости и отключения звука
3) Создайте три новых пользовательских сочетания клавиш под названием «Увеличение громкости», «Уменьшение громкости» и «Отключение звука»
- > Тип ярлыка: команда
- > поскольку команды используют ~ / bin / mixctl volup , ~ / bin / mixctl voldn и ~ / bin / mixctl mute соответственно

    
ответ дан EleotleCram 21.05.2013 в 15:07
1

У меня была та же проблема на нескольких машинах Xubuntu 12.04, которые были обновлены до XFCE 4.10. Вот очень быстрый способ решить эту проблему из командной строки (или с помощью скрипта bash ).

В отличие от предыдущих решений, которые предлагают сценарии стоп-пробела, это решение полностью восстанавливает функцию кнопки mute / unmute.

Просто выполните следующие две команды один раз, чтобы решить проблему раз и навсегда:

$ 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 20.02.2014 в 19:25
1

Я нашел простое решение, которое хорошо работает для меня на этом форуме . В частности, вам нужно добавить это в /etc/asound.conf :

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

И затем установите комбинацию клавиш для клавиши mute с командой:

amixer set Master toggle
    
ответ дан Trung Ta 29.08.2014 в 09:34
0

Вы можете использовать настройки клавиатуры, чтобы установить кнопку отключения звука, чтобы выполнить найденную команду . Хотя первый метод, указанный в этой ссылке, для меня бесполезен, второй работает отлично для XFCE4: $ pactl set-sink-mute 0 toggle . Вы также можете создать сценарий или запуска для выполнения команды при щелчке мышью.

FYI, если вы используете что-то вроде Cinnamon (и, возможно, других настольных компьютеров на основе gnome) user197761's предложение выше лучше, поскольку звуковой апплет корицы узнает, что громкость отключена: amixer -D pulse set Master Playback Switch toggle (если вам нравится эта последняя команда, пожалуйста, поддержите его ответ, а не мой.)

    
ответ дан TSJNachos117 23.04.2014 в 05:58