Как получить текущий уровень звука в PulseAudio

Jun 11, 2011 17:29

Мало ли, кому пригодится

#!/bin/sh
MONITOR=`pactl list | egrep -A2 '^(\*\*\* )?Source #' | grep 'Name: .*\.monitor$' | awk '{print $NF}' | tail -n1`
echo "set-source-mute ${MONITOR} false" | pacmd
parec -d "$MONITOR" | ./vu -d5 3>&1 1> /dev/null 2>&3 | awk '{print $(NF-1);}'

Рутовые права не нужны, но нужна замечательная программка vu (http://tobiah.org/pub/vu/) от некого Toby Shepard.

На выходе получается поток цифр типа:
53%
55%
55%
68%
61%
60%
51%
53%

Если вывод vu не фильтровать, то в stderr она посылает красивую картинку с уровнями звука, а в stdin - WAV-ку, которая через него фильтруется. Кстати, эта безумная конструкциям с 2>, 1> и 3> есть ни что иное как обмен между потоками stdout и stderr.

На кой ляд мне это нужно? Да просто индикатор громкости на ардуине делаю :)

уровень звука, vu, sound level, пятиминутка, pulseaudio

Previous post Next post
Up