Установить громкость с терминала

83

Можно ли установить громкость звука с помощью терминала, вместо того, чтобы щелкать значок динамика в верхней панели?

Причина, по которой я хочу это сделать, состоит в том, что на моей клавиатуре нет кнопок увеличения / уменьшения громкости, и я нахожу это раздражающим, чтобы дотянуться до мыши.

Tristian
источник
1
Читать уровень мастер-громкости в процентах от 0% до 100%: amixer sget Master | grep 'Right:' | awk -F'[][]' '{ print $2 }' увеличить уровень мастер-громкости на 10%:amixer -q sset Master 10%+
Эрик Лещинский

Ответы:

97

Для интерактивного использования вы можете использовать alsamixer. Для сценариев (например, связывание с комбинациями клавиш) взгляните на amixer.

alsamixer включен по умолчанию в большинстве систем.


Для установки мастер громкости используйте:

# Gets a list of simple mixer controls
$ amixer scontrols 

Затем установите его на желаемую громкость, например

$ amixer sset 'Master' 50%
Ренан
источник
1
Чем отличается «sset» от просто «set». (Я пробовал оба, и оба работают)
Venryx
@Venryx man amixerпредполагает, что они эквивалентны и что «s» в «sset» означает «простой». Также есть «cset», который устанавливает содержимое карты.
Матиас Браун
42

Найдено в файле конфигурации Openbox rc.xml:

# increase by 3%
amixer -q sset Master 3%+

# decrease by 3%
amixer -q sset Master 3%-

# mute/unmute
amixer -q sset Master toggle

amixer страница руководства может дать более подробную информацию.

enzotib
источник
21

Если ваша система использует, pulseaudioвы можете использовать pactl:

pactl set-sink-volume 0 +15%

или же

pactl set-sink-volume 0 -5dB

хотя вы также можете указать целое число или линейный коэффициент:

set-sink-volume SINK VOLUME [VOLUME ...]
          Set the volume of the specified sink (identified by its symbolic name or numerical index). VOLUME can be speci‐
          fied as an integer (e.g. 2000, 16384), a linear factor (e.g. 0.4, 1.100), a percentage (e.g. 10%, 100%) or a
          decibel value (e.g. 0dB, 20dB). If the volume specification start with a + or - the volume  adjustment  will  be
          relative to the current sink volume. A single volume value affects all channels; if multiple volume values are
          given their number has to match the sink's number of channels.
don_crissti
источник
2
Примечание от arch linux wiki : pactlкоманды, которые принимают отрицательные аргументы в процентах, потерпят неудачу с ошибкой «недопустимая опция». Используйте --псевдоаргумент стандартной оболочки, чтобы отключить разбор аргументов перед отрицательным аргументом. Напримерpactl set-sink-volume 1 -- -5%
Джейми Кокберн
2
@JamieCockburn - я не уверен, когда это было написано, но я использую archlinux, и нет абсолютно никакой необходимости в дополнительном --с отрицательными значениями (процент, дБ, целые числа ... все они работают нормально). На самом деле, все наоборот : если я использую --в соответствии с вики, pactl set-sink-volume 1 -- -3% я получаю Invalid volume specification.
don_crissti
Должен ли быть зависимым от оболочки тогда? Я на Ubuntu 14.04, с Xfce, и запускаю команду из bash (4.3.11). Если я опущу --, я получу недопустимую опцию.
Джейми Кокберн
1
@JamieCockburn - я не думаю, что оболочка уместна (для записи, она отлично работает для меня с обоими bashи zsh). Вероятно, более ранние версии pactlимели эту проблему, и апстрим, скорее всего, исправил ее (я использую v. 6.0).
don_crissti
1
@JamieCockburn Я использую Ubuntu 16.04 Xfce Bash, и он работает без «-», просто примечание.
Рейшин
9

Я знаю, что это старый. Поскольку Alsa и pulseaudio соединены между собой, этот ответ из askubuntu помог мне управлять громкостью как основного звука, так и HDMI:

увеличить громкость

amixer -q -D pulse sset Master 10%+

уменьшить громкость

amixer -q -D pulse sset Master 10%-

отключить звук

amixer -q -D pulse sset Master toggle

Другие команды amixer sset тоже работают.

Mathter
источник
7

Они «более естественны для человеческого слуха».

Чтобы получить мастер в единицах alsamixer, используйте:

amixer -M get Master

Чтобы увеличить громкость на 5% в единицах alsamixer, например:

amixer -M set Master 5%+

https://bbs.archlinux.org/viewtopic.php?id=135348

Робсон
источник
6

В OS X используйте следующее:

# highest
osascript -e "set Volume 7"
# lowest
osascript -e "set Volume 1"
# middle
osascript -e "set Volume 3.5"  

Вы даже можете установить громкость на другие дробные уровни:

# 25%
osascript -e "set Volume 1.75"
1 ''
источник
@ Дикая карта для кнопок громкости Mac только с шагом 0,25
1 ''
4

Вы также можете попробовать pamixer, недавний проект, который делает именно то, что вы хотите. Он находится в хранилище ArchLinux с тем же именем.

fradeve
источник
это даже в репозитории сообщества сейчас
Михал Половка