Вимкнення клавіш вимикає Alsa та PulseAudio, але вмикає лише Alsa


20

Коли я натискаю клавішу відключення звуку на моїй клавіатурі, і головний канал Alsa, і головний канал PulseAudio відключаються, натискаючи його знову лише вмикаючи головний канал alsa, головний канал pulseaudio залишається вимкненим. Результат: немає звуку. Як це виправити?

Відповіді:


11

Виконайте цю команду:

amixer -D pulse set Master 1+ unmute

12
Чи можете ви пояснити, що робить ця команда, щоб інші користувачі знали?
Відновіть Моніку - ζ--

1
Що це за 1+? Я не зміг знайти пояснення на сторінці чоловіка в amixer.
jarno

використання toggle замість unmute корисно, якщо ви прив'язуєте команду до апаратного ключаamixer -D pulse set Master 1+ toggle
Pol Alvarez Vecino

20

але це набагато простіше.

amixer -D pulse set Master Playback Switch toggle

встановіть це як гарячу клавішу на "Відключити звук \ Увімкнути звук". регулятори гучності можна залишити такими, якими вони є.

Монетний двір 15 Мате - я зрозумів це сам, прекрасно працює для мене.


Як би там не було - добре працював на арках linux. Вимкнено та відключений звук успішно. Тепер я прив’язав цю команду до відключення команди на моєму ноутбуці, тому що за замовчуванням не вмикається всі канали. ДЯКУЄМО
Ерікас

Це працювало для мене з Ubuntu 14.04 + i3, прийнята відповідь не працювала.
Інго Бюрк

1
amixer -D pulse set Master toggleзроблю. Amixer очікує просте ім'я управління змішувачем для команди set або sset, і навіть якби він прийняв повне ім'я управління змішувачем, вам доведеться навести таке багатословне ім'я. Ви можете використовувати необов'язковий модифікатор playbackу такій команді:, amixer -D pulse set Master playback toggleале це зайве, якщо Masterтакож не має можливостей зйомки. Використовуючи додаткові модифікатори, ви також можете керувати, для яких каналів застосовується команда, якщо ваша система може підтримувати об'ємний звук.
jarno

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 ... "Дію гучності" вдалося знову відключити гучність!

Сподіваюся, це теж спрацює для вас!


Для мене працював (на Debian Jessie), і це рішення є постійним, тоді як рішення AFAIU, що стосуються amixer -D pulse set Master xxxодного вистрілу , або їх потрібно вручну відобразити на ярлик. Пропоноване тут рішення виглядає таким, яким воно має бути.
Jérôme

2

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

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

Тому для вирішення цього нам потрібно створити сценарій,

1- Створіть новий порожній документ у текстовому редакторі, наприклад, gedit чи клавіатурі миші,

2- Вставте цей код у документ, Код коду: 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- Зробіть файл виконуваним, клацнувши правою кнопкою миші на файл, перейдіть до Властивості, потім на вкладку Дозволи та встановіть прапорець, щоб позначити його виконуваним, це дозволить запустити сценарій. mark-file-as-Executible-gui

5- Далі нам потрібно зв’язати команди з клавіатурою, команди для коду збільшуються, зменшуються та відключають звук.

Отже, перейдіть до налаштувань клавіатури - як робити-я-міняю-моя-клавіатура-ярлики-в-xubuntu , У області комбінацій клавіш клацніть додати, потім відкрити, відкрийте створений нами файл "том", а потім додайте команду для коду за гучністю, збільшення гучності читання або вимкнення звуку . але з місцем розташування файлу коду перед цим, як "/ home / username / volume mute"

Потім призначте його клавіатурі, натиснувши клавішу, або якщо клавіша вже використовується,
~ Найімовірніше, випадок ~ знайдіть їх та замініть команду.

Ключові ярлики, ймовірно, називаються XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioMute . Оскільки тільки немоєць зламаний, зосередьте свої зусилля на тому, щоб змінити це спочатку.

Помилка: 1


Я щойно XF86AudioMuteвідзначився командою amixer set Master toggle. Клавіші підйому і опускання гучності відображаються аналогічно amixerкомандам.
Чан-Хо Су

@ Chan-HoSuh у вас така ж проблема? Ви можете просто зателефонувати на команду відключення звуку цього сценарію, якщо ви хочете, чомусь імпульс перехоплює звук на моїй машині, аміксер надсилає тумблер, який інтерпретується як просто вимкнення звуку імпульсом, або просто перехоплення натискання клавіші? Я раніше використовував аналогічний сценарій, який показував смугу гучності раніше :(, але це вимкнення та вимкнення звуку, і тепер у них є сповіщення, тому все добре, перемикання - як воно було встановлено раніше.
Матео

Одне невелике вдосконалення сценарію - також змусити вмикати звук при збільшенні / зменшенні обсягу. Я також додав "paplay /usr/share/sounds/ubuntu/stereo/message.ogg", щоб отримати відгук про гучність.
dma

Може бути , це було по- іншому і раніше, але з PulseAudio 4.0 ви можете використовувати такі команди , як pactl set-sink-volume 0 +5%, pactl set-sink-volume 0 -5%і pactl set-sink-mute 0 toggleзбільшити обсяг, зменшити гучність і перемикання обсягу, відповідно.
jarno

@jarno Так, це мало вирішити конкретну проблему (помилка), тому вона, ймовірно, виправлена ​​/ не настільки актуальна, але це залишається приємним маленьким хаком, якщо нічого іншого не працює
Матео


1

Працював для мене 12.10:

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

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) Створіть три нові спеціальні комбінації клавіш під назвою "Збільшення гучності", "Зменшення гучності" та "Відключення звуку"
- > тип ярлика: command
-> як команди використовують ~ / bin / mixctl volup , ~ / bin / mixctl voldn і ~ / bin / mixctl mute відповідно


1

У мене була така ж проблема на декількох машинах 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'

1

На цьому форумі я знайшов просте рішення, яке добре працює для мене . Детально вам потрібно додати це /etc/asound.conf:

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

А потім встановіть комбінацію клавіш на клавіші відключення звуку з командою:

amixer set Master toggle

0

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

FYI, якщо ви використовуєте щось на зразок Cinnamon (і, мабуть, інших настільних комп'ютерів на основі гномів), вищезгадана пропозиція користувача197761 здається кращою, оскільки звуковий аплет кориці визнає, що гучність вимкнено: amixer -D pulse set Master Playback Switch toggle(якщо вам подобається ця остання команда, будь ласка, підкажіть її / її відповідь, не моє.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.