加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 01:21:46 所属栏目:Linux 来源:网络整理
导读:我想读出当前为pulseaudio的几个客户播放的音频音量. 我想解决的问题如下: 我正在用xmms听音乐,然后我把它暂停,听一个朋友在youtube上发给我的一首歌.一个小时后,我突然发现我没有听任何音乐! 我正在考虑的(非常基本的)解决方案是bash脚本,它只检查除xmms
我想读出当前为pulseaudio的几个客户播放的音频音量.

我想解决的问题如下:
我正在用xmms听音乐,然后我把它暂停,听一个朋友在youtube上发给我的一首歌.一个小时后,我突然发现我没有听任何音乐!

我正在考虑的(非常基本的)解决方案是bash脚本,它只检查除xmms以外的所有应用程序的音量,如果有任何应用程序发出声音,xmms暂停,如果没有声音,xmms是静音,xmms已启用. (我确实希望能够以app的方式执行此操作,例如,应该忽略pidgin)

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

>我在思考正确的方向,还是有更简单的解决方案
>如果没有,我如何读出单独应用程序的当前音量级别

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读