使用 CLI omxplayer 调整音量级别 - Raspberry Pi

Adjust audio volume level with CLI omxplayer - Raspberry Pi

我有一个 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

谢谢!

我不知道如何使用命令调整音量。但是当使用 omxplayer CLI 时,只需按 - 或 + 来调高或调低音量。

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

omxplayer --vol N Sogn_title.mp3

其中 N 是表示毫贝的数字。例如,N 的有效值是:

5000(加大音量)

-15000(减小音量)

为了给脚本播放提供更准确的信息,omxplayer当前版本有3种音量调节方式,数值不是很直观:

  1. 启动命令行,参数--vol YYY,双倍毫贝,默认0,范围[-6000:0]
  2. 通过标准输入接口,发送 +/- 到 omxplayer 将 increase/decrease 音量为 300 dmbels
  3. with DBUS interface, cmd 'set volume', value double:XXX, default 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)
  • volume 150%, XXX=1.5 and YYY=352 ... (boost test, normal values are <=100%)

工作 bash dbus volume 命令的脚本:

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

在Raspberry Pi3、 我可以通过 alsamixer 调整音量。

在命令行中 类型

alsamixer

你会看到

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

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

调高音量:

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

降低音量:

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