Включая Natty, я всегда мог переключать (отключать / отключать) громкость звука «Master» с помощью команды
amixer sset Master toggle
, которую я связал с привязкой к краю в CompizConfig-Manager.
Теперь после установки Oneiric команда только отключает звук, но не отключает его. Я даже пробовал его в Терминале, но он тоже не работает. Он изменяет « Моно: Воспроизведение 68 [78%] [-14.25dB] [off] » на «... [on]», но звук остается приглушенным, поэтому мне нужно включить его через «sound-indicator» на панели.
Как я могу снова заставить эту работу работать? Что изменилось с Натти? Кто-нибудь знает команду, которую использует «звуковой индикатор» для переключения громкости звука?
Это работает для меня в 13.04, как отключать звук, так и отключать:
amixer -D pulse set Master 1+ toggle
Указывает импульсный звук, чтобы обеспечить включение звука, отключать все.
Это работает для меня в 13.04, как отключен, так и отключен:
amixer -D pulse set Master 1+ toggle
Он задает импульсный звук, чтобы обеспечить включение звука, отключать все.
Я использую этот скрипт в качестве обходного пути:
#!/bin/bash
CURRENT_STATE=`amixer get Master | egrep 'Playback.*?\[o' | egrep -o '\[o.+\]'`
if [[ $CURRENT_STATE == '[on]' ]]; then
amixer set Master mute
else
amixer set Master unmute
amixer set Front unmute
amixer set Headphone unmute
fi
Перед тем, как позвонить amixer set Master mute, я сделал разницу amixer scontents, и после его вызова и отключения звука с помощью графического интерфейса, чтобы выяснить, что
Со звуком по типу amixer scontents > ~/before (вы получите файл со статусом всех звуковых каналов). Затем переключите громкость с помощью amixer set Master toggle. Создайте второй файл статуса chanel с amixer scontents > ~/after снова переключите звук с помощью amixer set Master toggle, который должен вернуть громкость на уровень до первой команды переключения. Создайте третий файл с amixer scontents > ~/afterafterТеперь у вас есть три файлы, сообщающие вам, которые сообщают вам о состоянии звуковых каналов, используемых для нормального звука, которые отключены amixer set Master toggle и которые не включаются снова, снова отключаясь с помощью той же команды.
Чтобы легко сравнить файлы и увидеть различия (приемы, которые будут отключены и не будут отключены впоследствии), вы можете использовать meld в Центре программного обеспечения. Запустите его, откройте три файла и на полосе прокрутки вы увидите, где существуют различия между файлами. Используйте найденные имена chanel, чтобы добавить их к описанному выше сценарию.
Я не мог заставить звук отключать, чтобы правильно переключаться. Я использовал CLI и набирал в Amixer sset Master переключился или нажал клавишу переключения мультимедиа HP pavillion, я получаю тот же результат: если звук включен и работает, он автоматически отключит канал Master Channel AND PCM. Затем, когда я снова нажимаю переключатель (cli или key), он ВСЕГДА включает Master, но PCM отключается. Для моей установки (HP Pavilion DV6 работает Xubuntu Oneric), это означает, что звук выключен даже при включении ведущего устройства. При запуске из CLI - те же результаты. Если, с cli, я переключаю PCM, он также отключает мастер-канал и снова не включит его, хотя он правильно переключает PCM.
Сценарий, который работал, был:
#!/bin/bash
if amixer -c 0 get Master | grep -q off
then
amixer set Master unmute
amixer set PCM unmute
else
amixer set Master mute
fi
Затем я использовал манипуляции Xubuntu (настройки> диспетчер настроек> клавиатура> ярлыки приложений), чтобы перейти к сценарию (я назвал его sndfx. sh и установить его в исполняемый файл, щелкнув правой кнопкой мыши в thunar и под тикаемыми разрешениями сделать исполняемый файл). Затем я назначил ей быстрый ключ HP Pavilion, нажав на эту клавишу. Теперь он правильно переключается - Удивительно. Надеюсь, это поможет кому-то еще.
Мир
Если я не ошибаюсь, это ошибка, которая заставляет другие каналы микшера отключать звук и включать звук. Чтобы отключить звук, попробуйте
amixer set Master 0;
Чтобы включить звук, попробуйте
amixer set Master 1% +; набор amixer Master 7dB +;
Попробуйте этот фрагмент скрипта ... он работает
https://wiki.archlinux.org/index.php/PulseAudio#volume_control
Если вы хотите заменить amixer на .lircrc для вашего remotecontrol, работающего с lirc, вы можете попробовать следующие строки. Обязательно установите xmacro. Регулятор громкости теперь работает снова.
begin
prog = irexec
button = KEY_VOLUMEUP
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_MUTE
config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end
Хитрость заключается в том, чтобы состояние громкоговорителя или наушников соответствовало состоянию основного канала в зависимости от того, подключены ли наушники или нет. Этот скрипт делает это для меня на моем старом ноутбуке Dell Latitude:
#!/bin/bash
amixer -q sset Master toggle
MASTER_STATE=`amixer get Master | awk -F"dB] " 'NR == 5 {print $2;}'`
HEADPHONES_PLUGGED=`amixer contents | grep -A 2 Headphone\ Jack | awk -F"=" 'NR == 3 {print $2;}'`
if [[ $HEADPHONES_PLUGGED == 'on' ]]; then
SLAVE="Headphone"
else
SLAVE="Speaker+LO"
fi
if [[ $MASTER_STATE == '[on]' ]]; then
amixer -q sset $SLAVE unmute
else
amixer -q sset $SLAVE mute
fi
Возможно, вам нужно будет проверить свои каналы с помощью amixer на вашем компьютере и соответствующим образом изменить определения SLAVE. Кроме того, строка grep «Headphone \ Jack» в определении HEADPHONES_PLUGGED может быть чем-то еще.
Принудительная сила unmute:
for i in $(amixer |grep -o \'.*\'); do amixer set $i unmute; done
Если вы хотите заменить amixer на .lircrc для вашего remotecontrol, работающего с lirc, вы можете попробовать следующие строки. Обязательно установите xmacro. Регулятор громкости теперь работает снова.
begin
prog = irexec
button = KEY_VOLUMEUP
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_MUTE
config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end
Если вы хотите заменить amixer на .lircrc для вашего remotecontrol, работающего с lirc, вы можете попробовать следующие строки. Обязательно установите xmacro. Регулятор громкости теперь работает снова.
begin
prog = irexec
button = KEY_VOLUMEUP
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_MUTE
config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end
Попробуйте этот фрагмент скрипта ... он работает
https://wiki.archlinux.org/index.php/PulseAudio#volume_control
Если я не ошибаюсь, это ошибка, которая заставляет другие каналы микшера отключать звук и включать звук. Чтобы отключить звук, попробуйте установить
amixer Master 0;
Включить попытку
установить amixer Master 1% +; набор amixer Master 7dB +;
Принудительная сила unmute:
for i in $(amixer |grep -o \'.*\'); do amixer set $i unmute; done