15

我有一个 bash 脚本,它通过 omxplayer 在我的 Raspberry Pi 上播放 .mp3 文件。但无法通过GUI控制本地(耳机)音量。是否有可以在 bash 脚本中实现的CLI命令?我已经搜索了很多,但找不到这样的命令。

代码:

omxplayer Song_Title.mp3

设置本地(耳机)输出的音频:

sudo modprobe snd_bcm2835 sudo amixer cset numid=3 1

omxplayer -o local

谢谢!

4

5 回答 5

32

为了给通过脚本播放提供更准确的信息,在当前版本的 omxplayer 中有 3 种方法可以改变音量,并且值不是那么直观:

  1. 在启动命令行上,参数--vol YYY,双毫贝,默认 0,范围 [-6000:0]
  2. 通过标准输入接口,向 omxplayer 发送 +/- 将增加/减少 300 dmbels 的音量
  3. 带 DBUS 接口, cmd 'set volume', value double:XXX, 默认 1, range [0:1]

xxx 到 yyy 的关系是:XXX = 10 ^ (YYY / 2000)... 根据omxplayer.cpp源代码,反向公式为: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 ...(对于升压测试,正常值 <=100%)

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%。

于 2016-12-05T05:10:42.153 回答
12

我不确定如何使用命令调整音量。但在使用 omxplayer CLI 时,只需按 - 或 + 即可调高或调低音量。

于 2015-10-17T07:45:08.400 回答
3

Omxplayer 不使用 alsa 进行声音输出,但可以使用 stdin 接口

提高音量:

echo -n "+" > /proc/$(pidof omxplayer.bin)/fd/0

音量减小:

echo -n "-" > /proc/$(pidof omxplayer.bin)/fd/0
于 2019-02-05T13:52:23.313 回答
2

您可以通过添加选项来设置初始音量--vol

omxplayer --vol N Sogn_title.mp3

哪里N是表示毫贝尔的数字。N 的有效值例如是:

5000(增加音量)

-15000(减小音量)

于 2016-04-23T07:57:15.420 回答
2

在 Raspberry Pi 3 中,我可以通过 alsamixer 调节音量。

在命令行类型中

alsamixer

你会看见 屏幕

只需使用向上或向下箭头来增加或减少音量。按 Esc。音量已设置。

于 2018-03-16T04:57:01.250 回答