我有一个 bash 脚本,可以通过 omxplayer 在 Raspberry Pi 上播放 .mp3 文件。但无法控制本地(耳机)音量GUI。是否有一个命令CLI我可以在 bash 脚本中实现吗?我搜索了很多,但找不到这样的命令。
Code:
omxplayer Song_Title.mp3
设置本地(耳机)输出的音频:
sudo modprobe snd_bcm2835
sudo amixer cset numid=3 1
omxplayer -o local
Thanks!
为了通过脚本播放提供更精确的信息,当前版本的 omxplayer 有 3 种改变音量的方法,并且值不是那么直观:
- 在启动命令行时,参数
--vol YYY
,双毫贝,默认 0,范围 [-6000:0]
- 通过标准输入接口,发送 +/- 到 omxplayer 将增加/减少音量 300 dmbels
- 带DBUS接口,cmd'设置音量',值
double:XXX
,默认1,范围[0:1]
xxx 与 yyy 的关系是:XXX = 10 ^ (YYY / 2000)
... 根据omxplayer.cpp https://github.com/popcornmix/omxplayer/blob/350779b00bb7278e0d1d9025b9ed1ddb4a2d99cd/omxplayer.cpp#L1166源代码,逆向公式为:YYY = 2000 * (log XXX)
.
所以如果我们需要:
- 体积 1%,XXX=0.01,YYY=-4000
(10^(-4000/2000)=10^-2=0.01
- 体积 10%,XXX=0.1,YYY=-2000
(10^(-2000/2000)=10^-1=0.1
- 体积 50%,XXX=0.5,YYY=-602
(10^(-602/2000))~=0.5
- 音量 100%,XXX=1,YYY=0
(10^(0/2000)=10^0=1)
- 音量 150%,XXX=1.5 且 YYY=352 ...(对于升压测试,正常值
dbus 卷命令的工作 bash 脚本:
export DBUS_SESSION_BUS_ADDRESS=$(cat /tmp/omxplayerdbus.${USER:-root})
dbus-send --print-reply --session --reply-timeout=500 \
--dest=org.mpris.MediaPlayer2.omxplayer \
/org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Set \
string:"org.mpris.MediaPlayer2.Player" \
string:"Volume" double:0.5 # <-- XXX=0.5 (50% sound volume)
等于启动时的音量参数:
omxplayer --vol -602 mediaFileName.mp4
...两者都将音量设置为 50%。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)