Это очень странно, у меня есть один микрофон по умолчанию, и у меня есть другой второй микрофон. Когда я использую эту команду, она всегда показывает, что звук отключен, но громкость микрофона равна 0%. Как или каким образом я могу найти эти значения точно.
$ pactl list | sed -n '/^Source/,/^$/p' | grep Mute
Mute: no
Mute: no
Mute: no
При помощи Интерфейса командной строки 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
Вы получаете доступ к этой информации с помощью 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
, который дает вам более интуитивный интерфейс командной строки.
Это простое решение для включения / выключения звука микрофона с помощью одной строки
Я считаю, что это помогает
Я создал онлайн-скрипт 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
Я хотел сделать это с помощью 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"