Клавиша отключения звука отключает звук Alsa и PulseAudio, но включает только Alsa
Когда я нажимаю клавишу отключения звука на клавиатуре, мастер-канал Alsa и мастер-канал PulseAudio приглушаются, повторное нажатие на него только включает звук мастер-канала alsa, мастер-канал pulseaudio остается приглушенным. Результат: нет звука. Как мне это исправить?
10 ответов
Это намного проще, хотя.
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
(если вам нравится эта последняя команда, пожалуйста, подпишите его / ее ответ, а не мой.)