Як використовувати командний рядок для зміни гучності?


72

Я намагаюся контролювати гучність за допомогою мого сценарію програмування. Як я можу зробити наступне у Fedora 15, Ubuntu linux?

  1. Відключення звуку / Увімкнення звуку
  2. Збільшення гучності та зменшення гучності

Примітка. Зверніть увагу: я використовую веб-мікрофон / динамік USB, а також аналоговий мікрофон / динамік. Я хочу звернутися до всіх, щоб бути впевненим.


1
Якщо хтось приїжджає сюди з lubuntu, щоб виправити свої кнопки регулювання гучності, ввівши <command>amixer -D pulse sset Master 3%+ unmute</command>відповідну клавіатуру ~/.config/openbox/lubuntu-rc.xmlі потім запустивши openbox --reconfigureзафіксовано це для мене
rhombidodecahedron

Відповіді:


80

Можна використовувати аміксер . Він знаходиться в alsa-utilsпакеті для Ubuntu та Debian.

Запустіть amixerбез параметрів, щоб отримати огляд своїх елементів керування для пристрою за замовчуванням.

Ви також можете використовувати alsamixerбез параметрів (з одного пакету) для отримання більш наочного огляду. Використовуйте F6 для перегляду та переключення між пристроями. Зазвичай у вас можуть вибрати PulseAudio та апаратну звукову карту.

Потім використовуйте amixerз setкомандою , щоб встановити гучність. Наприклад, встановити основний канал на 50%:

amixer set Master 50%

Master це ім'я керування і повинно відповідати тому, яке ви бачите під час роботи без параметрів.

Зверніть увагу на %знак, без нього воно буде розглядати значення як рівень 0 - 65536.

Якщо PulseAudio не є пристроєм за замовчуванням, ви можете використовувати -Dперемикач:

amixer -D pulse set Master 50%

Інші корисні команди, зазначені в коментарях:

Щоб збільшити / зменшити рівень гучності +/-після числа, використовуйте

amixer set Master 10%+
amixer set Master 10%-

Щоб вимкнути, ввімкнути або ввімкнути або переключитись між вимкненим / вимкненим станом, використовуйте

amixer set Master mute
amixer set Master unmute
amixer set Master toggle

Також зауважте, що можуть бути дві різні шкали відсотків, необроблені за замовчуванням, а для деяких пристроїв - більш натуральна шкала на основі децибелу , яку також використовують alsamixer. Використовуйте -Mдля використання останнього.

Нарешті, якщо вас цікавить лише PulseAudio, ви можете перевірити pactl(див. Одну з інших відповідей).


4
Дякую! Є два способи зробити це 1. Як ваш відмінний приклад: набір амікерів Master mute; amixer set Master unmute; 2. yum -y встановити xdotool; ключ xdotool XF86AudioRaiseVolume; ключ xdotool XF86AudioLowerVolume;
YumYumYum

15
І як додаток, ви можете збільшити або зменшити обсяг до amixer set Master 10%+таamixer set Master 10%-
користувач

2
Це не працює в Ubuntu.
Серін

2
Я не згоден @Cerin. Це працює на Ubuntu LTS 12 прямо зараз. Зауважте, що Mв master master є великі регістри (має бути великим регістром ).
ashes999

5
Серін має рацію. Це не працює. Що працює:amixer -D pulse sset Master 50%
шивами

30

Вимкнути звук:

amixer -D pulse sset Master mute

Щоб ввімкнути звук:

amixer -D pulse sset Master unmute

Щоб збільшити гучність на 5%:

amixer -D pulse sset Master 5%+

Щоб зменшити гучність на 5%:

amixer -D pulse sset Master 5%-


1
Ви також можете додати вмикати звук до останніх команд, щоб автоматично вмикати звук при зміні гучності (для зручності):amixer -D pulse sset Master unmute 5%+
Роман Голишев

16

pactl / pacmd (на відміну від amixer) дозволяє збільшити обсяг понад 100% :-).

pactl set-sink-mute 0 toggle  # toggle mute
pactl set-sink-volume 0 0     # mute (force)
pactl set-sink-volume 0 100%  # max
pactl set-sink-volume 0 +5%   # +5% (up)
pactl set-sink-volume 0 -5%   # -5% (down)

Ручні налаштування понад 100% можливі в pavucontrol(на відміну від alsamixer).

ПРИМІТКА. Якщо ви хочете ділити однакові команди на різних хостах з різними потоками, ви можете використовувати @DEFAULT_SINK@як раковину замість числа 0:

pactl set-sink-volume @DEFAULT_SINK@ +5%

Ви встановлюєте раковину за замовчуванням за допомогою pactl set-default-sink my-sink-name(перелічуйте імена з pactl list short sinks)

ОНОВЛЕННЯ: додано toggle mute(спасибі Дон Джо).

Джерело: askubuntu.com , wiki.archlinux.org .


5

Більший об'єм:

amixer set Master 3%+

Менший об'єм:

amixer set Master 3%-

Відключення звуку:

amixer set Master toggle

Приклади сполучень клавіш для i3/ sway, команди виконуються після exec:

bindsym XF86AudioRaiseVolume exec amixer set Master 3%+
bindsym XF86AudioLowerVolume exec amixer set Master 3%-
bindsym XF86AudioMute exec amixer set Master toggle
bindsym Ctrl+$alt+Up  exec amixer set Master 3%+
bindsym Ctrl+$alt+Down exec amixer set Master 3%-

4

якщо користувач ігнорує пристрій, вам потрібно його "відключити". інакше встановлення відсотка спрацює, але звук все ще вимкнено

amixer set 'Master' 100% unmute
/usr/bin/amixer set 'PCM' 100% unmute

3

Відповідь Певіка майже правильна для PulseAudio, із двох речей:

  • команда негативної зміни гучності призведе до помилки, оскільки частина її мінус-щось буде інтерпретуватися як окремий (нерозпізнаний) варіант; вам потрібно вимкнути розбір варіантів з подвійним мінусом десь перед від’ємним числом, наприклад, "- -5%"

  • справжній стан відключення звуку - це те, що повинно бути можливо переключити за допомогою тієї самої клавіші, яка не працюватиме, якщо ви просто встановите гучність на фіксованому значенні 0, тому правильною командою для цього буде:

pactl set-sink-mute @DEFAULT_SINK@ toggle

LE: Чи застосовна перша підказка, може залежати від версії PulseAudio, яку ви працюєте, або від чогось іншого в дистрибутиві - я помічаю, що в Ubuntu 16 він працює без символу "-" і не працює, якщо додати "-" перед від’ємним відсотком.


Дуже добре, THX, що робить його ідеальним, коли ми багато змінюємо менеджерів вікон на льоту, щоб покращити ігрові fps, тому я використовую, xbindkeys-configі мені навіть не доведеться перезавантажувати X :) (хай посмішка ... не каламбур призначений, хаха)
Водолій Потужність

2

amixer працював на мене, але я не отримав приємну анімацію, яку отримую, коли натискаю кнопку збільшення гучності на клавіатурі.

Я вирішив xteбезпосередньо натиснути цю клавішу з командного рядка:

Обсяг: xte 'key 0x1008ff13'

Зменшення гучності: xte 'key 0x1008ff11'

Відключення звуку: xte 'key 0x1008ff12'

Я з'ясував ключ (цей шістнадцятковий номер), використовуючи xev.

sudo apt-get install xbindkeys xautomation
xev

а потім натисніть кнопку збільшення гучності на клавіатурі, щоб отримати клавішу. Ключовий сим може відрізнятись від системи до системи, тому пошук його з xev буде найбільш надійним способом.

Результат для мене виглядає приблизно так:

Подія KeyRelease, серійний 37, синтетичний НІ, вікно 0x2c00001, корінь 0xef, subw 0x0, час 6660080, (566,573), корінь: (664,651), стан 0x0, код коду 123 (keyym 0x1008ff13, XF86AudioRaiseVolume), той же_екран YES, XLookupS : XFilterEvent повертає: Неправильно

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