测试音频设备/声卡当前是否正在播放?

RSF*_*on7 9 linux scripting audio devices pulseaudio

是否有默认程序可以检查我的音频设备是否处于静音状态?

编辑:沉默,我的意思是如果有什么东西在上面播放(不仅仅是激活或打开)

像这样的东西:

if [[ device0 is silent ]] ; then
    radio $RANDOM
fi
Run Code Online (Sandbox Code Playgroud)

编辑2:我想要实现的是一个播放广播的脚本,并且可以在播放器失败时继续播放,例如,如果互联网连接中断并且播放器没有恢复,我将杀死播放器并重新开始

Sté*_*las 6

如果您正在使用 PulseAudio(基于 Gnome 的 Linux 发行版倾向于使用 PulseAudio,您可以检查一个是否正在运行ps -C pulseaudio)并且您想知道某些应用程序是否正在向任何“接收器”发送任何数据,您可以这样做:

pacmd list-sink-inputs | grep -c 'state: RUNNING'
Run Code Online (Sandbox Code Playgroud)

仍然使用PulseAudio,如果您想检查您的声音输出是否静音,可能会更简单,但您可以使用以下方法获得默认“接收器”的“静音”状态:

pacmd dump | awk '
  $1 == "set-sink-mute" {m[$2] = $3}
  $1 == "set-default-sink" {s = $2}
  END {print m[s]}'
Run Code Online (Sandbox Code Playgroud)