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

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

10 ответов

Решение

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

amixer -D pulse set Master 1+ unmute

Это намного проще, хотя.

amixer -D pulse set Master Playback Switch toggle

установите это как горячую клавишу "Mute\Unmute". регуляторы громкости можно оставить как есть.

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

У меня была такая же проблема при запуске рабочего стола 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) и тадам... Акция "Увеличение громкости" смогла снова включить звук!

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

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

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

Таким образом, чтобы решить это, нам нужно сделать сценарий,

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

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- Назовите файл "том" (расширение не требуется), поместите его туда, где сможете найти, и не удаляйте его, как домашнюю папку.

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

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

Итак, перейдите к настройкам клавиатуры - /questions/190230/kak-ya-mogu-izmenit-svoi-sochetaniya-klavish-v-xubuntu, в области сочетаний клавиш нажмите кнопку Добавить, затем откройте, откройте созданный нами файл "Volume", затем добавьте команду для кода после громкости, увеличения громкости чтения или отключения звука. но с местоположением файла кода перед ним, как "/home/username/volume mute"

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

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

Ошибка: 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) Отмените отображение сочетаний клавиш кмикс по умолчанию для увеличения / уменьшения громкости и отключения звука.
3) Создайте три новых пользовательских сочетания клавиш под названием "Увеличение громкости", "Уменьшение громкости" и "Отключение звука".
-> тип ярлыка: команда
-> в качестве команд используйте ~/bin/mixctl coep, ~/bin/mixctl voldn и ~/bin/mixctl mute соответственно

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

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

Увидеть:

https://bugs.launchpad.net/xfce4-volumed/+bug/883485/comments/3

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

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

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

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

$ 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'

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

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

А затем установите сочетание клавиш для клавиши отключения звука командой:

amixer set Master toggle

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

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

Другие вопросы по тегам