在 Bash 脚本中检测音频播放

在 Bash 脚本中检测音频播放

有没有办法检测是否正在播放声音(使用 bash 脚本)?

(我在 Ubuntu 11.10 上使用 pulseaudio。)

我计划将其用作指示器,以便在静音时直观地提醒我声音正在播放。

答案1

使用脉冲音频:您可以尝试pactl list查看脉冲音频对声音硬件做了什么。我将提取状态的具体细节留给您。例如:此命令将列出SinkSource状态。

pactl list | grep State

使用 procfs 进行 ALSA警告:这些 proc 条目将来可能会消失): 此代码片段贯穿 ALSA proc 层次结构中的 pcm 播放设备。

if grep -q RUNNING /proc/asound/card*/*p/*/status 2>&1; then
   echo "Playing"
else
   echo "Idle"
fi

相关内容