Как узнать точное состояние отключения или включения микрофона или уровень громкости микрофона с помощью командной строки?

Это очень странно, у меня есть один микрофон по умолчанию, и у меня есть другой второй микрофон. Когда я использую эту команду, она всегда показывает, что звук отключен, но громкость микрофона равна 0%. Как или каким образом я могу найти эти значения точно.

$ pactl list | sed -n '/^Source/,/^$/p' | grep Mute
    Mute: no
    Mute: no
    Mute: no
4
задан 11 January 2012 в 14:17

4 ответа

При помощи Интерфейса командной строки Pulseaudio мы получим большую информацию о доступных источниках

pacmd list-sources

отобразит довольно длинный список. Текущий активный вход отмечен со звездочкой. Мы могли объединить это с grep но затем потеряет информацию, для которой получают выводы, допустимы

pacmd list-sources | grep volume

Для установки вывода на определенное значение, мы должны знать, что это - индекс, которым также дают list-sources выйти

pacmd set-source-volume <index> <value> # value: 0 = mute 65536 = 100%

Мы, возможно, также должны не отключить звук источника приемника с

pacmd set-source-mute <index> 0
5
ответ дан 11 January 2012 в 14:17

Вы получаете доступ к этой информации с помощью amixer. Чтобы получить список всех элементов управления звуком, вы можете выполнить команду

$ amixer controls
...
numid=18,iface=MIXER,name='Capture Source'
numid=19,iface=MIXER,name='Capture Switch'
numid=20,iface=MIXER,name='Capture Volume'
...

и затем прочитать значения элементов управления с помощью

$ amixer cget numid=20
numid=20,iface=MIXER,name='Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=15,step=0
  : values=0,0
  | dBscale-min=0.00dB,step=1.50dB,mute=0

. Интересен также alsamixer, который дает вам более интуитивный интерфейс командной строки.

0
ответ дан 11 January 2012 в 14:17

Это простое решение для включения / выключения звука микрофона с помощью одной строки

Я считаю, что это помогает

Я создал онлайн-скрипт mictoggle

$ cat /usr/local/bin/mictoggle

pactl list sources | grep -qi 'Mute: yes' && pactl set-source-mute 1 false || pactl set-source-mute 1 true
0
ответ дан 11 January 2012 в 14:17

Я хотел сделать это с помощью pactl, и вот что у меня получилось:

# Get active audio source index
CURRENT_SOURCE=$(pactl info | grep "Default Source" | cut -f3 -d" ")

# List lines in pactl after the source name match and pick mute status
pactl list sources | grep -A 10 $CURRENT_SOURCE | grep "Mute: yes" 
0
ответ дан 12 November 2020 в 05:47

Другие вопросы по тегам:

Похожие вопросы: