Включая Натти, я всегда мог переключать (отключать / включать) громкость звука «Master» с помощью команды
amixer sset Master toggle
, которую я связал с привязкой края в CompizConfig- менеджер.
Теперь после установки Oneiric команда только отключает звук, но не включает его. Я даже попробовал это в Терминале, но это также не работает. Он меняет ' Mono: Воспроизведение 68 [78%] [-14.25dB] [выкл] ' на '... [вкл]', но звук остается приглушенным, так что мне нужно включить его через ' звуковой индикатор »на панели.
Как я могу заставить это работать снова? Что изменилось с Нетти? Кто-нибудь знает команду, которую звуковой индикатор использует для переключения громкости звука?
Я не мог отключить звук, чтобы правильно переключаться. Независимо от того, использовал ли я CLI и набрал в мастере Amixer sset Master или нажал клавишу переключения носителя HP pavillion, я получу тот же результат: если звук включен и работает, он автоматически отключит мастер-канал и канал 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 и под разрешениями отметьте make execute). Затем я назначил ему быструю клавишу HP Pavilion, нажав эту клавишу. Теперь он переключается правильно - потрясающе. Надеюсь, это поможет кому-то еще.
Мир
Я использую этот сценарий в качестве обходного пути:
#!/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
Я сделал diff amixer scontents
перед вызовом amixer set Master mute
и после вызова и включения всего, используя графический интерфейс, чтобы выяснить, что нужно быть безмолвным.
amixer scontents > ~/before
(вы получите файл со статусом всех звуковых каналов) amixer set Master toggle
amixer scontents > ~/after
amixer set Master toggle
, который должен вернуть громкость на уровень, предшествующий первой команде переключения amixer scontents > ~/afterafter
Теперь у вас есть три файла, которые сообщают вам о состоянии звуковых каналов, используемых для нормального звука, которые отключаются amixer set Master toggle
и которые снова не включаются снова включить звук с помощью той же команды.
Чтобы легко сравнить файлы и увидеть различия (каналы, которые приглушаются и не включаются впоследствии), вы можете использовать meld
из Центра программного обеспечения. Запустите его, откройте три файла и на полосе прокрутки вы увидите, где существуют различия между файлами. Используйте имена найденных каналов, чтобы добавить их в описанный выше скрипт.
Хитрость заключается в том, чтобы состояние динамика или наушников соответствовало состоянию основного канала, в зависимости от того, подключены наушники или нет. Этот сценарий делает это для меня на моем древнем ноутбуке 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, возможно, должна быть чем-то другим.
Попробуйте этот фрагмент скрипта ... он работает
https://wiki.archlinux.org/index.php/PulseAudio#volume_control
Это работает для меня 13.04, как выключение звука, так и включение звука:
amixer -D pulse set Master 1+ toggle
Он задает импульсный звук, чтобы обеспечить включение звука, включение всего звука.
Грубая сила включения:
for i in $(amixer |grep -o \'.*\'); do amixer set $i unmute; done
Если я не ошибаюсь, это ошибка, из-за которой другие каналы микшера отключаются и включаются. Чтобы отключить звук, попробуйте
amixer set Master 0;
Чтобы включить звук, попробуйте
amixer set Master 1% +; набор микросхем Master 7дБ +;
Если вы хотите заменить amixer в .lircrc для вашего удаленного управления, работающего с 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