5

Is there a way to detect if any sound is playing (using a bash script)?

(I'm on Ubuntu 11.10 using pulseaudio.)

I plan on using it in an indicator to visually remind me sound is playing while the mute is on.

1 Answer 1

7

Using pulse-audio: You can try pactl list to see what pulse audio is doing with the sound hardware. I'm leaving the specifics of pulling out the status to you. For e.g.: This command would list the Sink and Source states.

pactl list | grep State

Using procfs for ALSA (Caveat: these proc entries might go away in the future): This snippet runs through the pcm playback devices in ALSA proc heirarchy.

if grep -q RUNNING /proc/asound/card*/*p/*/status 2>&1; then
   echo "Playing"
else
   echo "Idle"
fi
4
  • Thanks a lot! pactl list is working for me. Volume, mute status, etc. How did you find this out? I've been searching for "pulseaudio status" and nothing this simple came up. Commented Feb 25, 2012 at 13:35
  • No problem :-) Find out the tools that come along with pulseaudio, then take a guess on the which one might be appropriate, check the man pages, try running it. Commented Feb 25, 2012 at 15:14
  • pactl list output is locale-dependent and will be shown according to $LANG. Commented Feb 6, 2022 at 20:34
  • pactl has a "short" format that's meant for parsing in scripts according to man pactl. In my case, I can use pactl list short sinks | cut --fields=5 to get the RUNNING/IDLE state directly. Commented May 29, 2022 at 18:45

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.