gpt4 book ai didi

linux - 如何在控制台中读取 pulseaudio 客户端的音量级别

转载 作者:IT王子 更新时间:2023-10-29 00:56:04 29 4
gpt4 key购买 nike

我想为pulseaudio的几个客户端读出此刻播放的音频音量。

我想解决的问题如下:我正在 xmms 中听音乐,然后暂停,听 friend 在 youtube 上发给我的歌曲。一个小时后,我突然发现我没有在听任何音乐!

我想到的(非常基本的)解决方案是一个 bash 脚本,它每秒检查除 xmms 之外的所有应用程序的音量,如果有任何应用程序发出声音,则 xmms 暂停,如果没有声音,则 xmms无声,xmms 已启用。 (我确实希望能够在应用程序方面做到这一点,例如,pidgin 应该被忽略)

我只能找到图形工具来读出体积,比如 pavucontrol,它可以很好地显示它。我真的不想编写各种 C 程序来做这么简单的事情,所以:

  1. 我的思考方向是否正确,或者是否有更简单的解决方案
  2. 如果没有,我如何读出单独应用程序的当前音量级别

最佳答案

也许您可以从输出流中录制一个音频样本,看看它是否(接近)0。此管道以 -32768 和 32767(含)之间的数字形式为您提供单个样本:

parec --raw --channels=1 --latency=2 2>/dev/null | od -N2 -td2 | head -n1 | cut -d' ' -f2- | tr -d ' '

您需要调整 parec 参数,可能还需要调整 PulseAudio 配置,以接入输出流并从中记录。

关于linux - 如何在控制台中读取 pulseaudio 客户端的音量级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5046975/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com