24 сентября 2008, Митч Фрэзер (Mitch Frazier)
Если вы пользуетесь звуковой системой ALSA, вы можете воспользоваться функциями, содержащимися в представленном сценарии, для получения и установки громкости звука вашей системы. Вы можете использовать его, если у вас запущен сторожевой сценарий и вы хотите увеличить громкость сигнала во время тревоги, а затем вернуть громкость обратно к предыдущему уровню.
Функция get просто использует amixer для вывода информации о канале управления миксером "Master" и затем использует grep для вырезания нужного значения из выведенной информации.
Функция set также использует amixer для задания громкости. Она использует опцию "cset" программы amixer.
Сценарий следующий:
#!/bin/bash # ##################################################################### # Получить текущую громкость. function get_volume() { mixer=$(amixer get Master | grep 'Front Left:') echo $mixer | cut -d ' ' -f 4 } ##################################################################### # Задать громкость. function set_volume() { amixer cset iface=MIXER,name="Master Playback Volume" $1 >/dev/null } if [[ $(basename $0 .sh) == 'sound' ]]; then sound_file=~/Documents/sounds/notify.wav if [[ "$1" ]]; then sound_file="$1"; fi ovol=$(get_volume) echo "Текущая громкость: $ovol" aplay $sound_file sleep 2 vol=40 echo "Воспроизведение на громкости: $vol" set_volume $vol aplay $sound_file sleep 2 echo "Возвращение к громкости: $ovol" set_volume $ovol aplay $sound_file fi # vim: tabstop=4: shiftwidth=4: noexpandtab: # kate: tab-width 4; indent-width 4; replace-tabs false;Если вы сохраните этот сценарий под именем sound.sh и запустите его самого, передав имя звукового файла, сценарий воспроизведёт файл на текущей громкости, затем поднимет громкость и воспроизведёт его снова, и наконец, восстановит громкость и воспроизведёт его последний раз. Если вы откроете средство управления миксером перед запуском сценария, вы должны увидеть как громкость главного канала изменяется под действием сценария. Вы можете изменить значение громкости в строке vol=40 на значение, которое вам нужно.
Митч Фрэзер (Mitch Frazier) является помощником редактора в Linux Journal и веб-редактором в linuxjournal.com.
Комментариев нет:
Отправить комментарий