mplayer slave:开始播放前设置音量

时间:2013-01-21 17:22:11

标签: mplayer

我知道这是关于一个特定的程序(mplayer后端);但是它将用于编写前端程序,所以我希望它仍然被认为是Stack Overflow上的主题。

我想运行两个mplayer slave实例,用于在不同音频流之间淡入淡出(webradio;平滑地更改频道)。为此,我设置了mplayer的“软件音量”,这样它就不会影响声卡的PCM输出通道,而是插入一个软件音量混音器来调节音量。

但是,我遇到了以下问题。

我使用以下命令启动mplayer(可以在命令行上测试):

mplayer -slave -idle -softvol

并将以下命令发送到mplayer:

loadfile <url>
set volume 0

启动(短时间)以100%音量播放文件,然后跳至0%音量。如果我交换这两个命令,mplayer告诉我我无法调整音量:

Failed to set property 'volume' to '0'.
ANS_ERROR=PROPERTY_UNAVAILABLE

显然,音频过滤器尚未加载/音频输出尚未设置或类似,因此mplayer无法更改不存在的音频输出的音量。

我可以强制mplayer提前初始化所有内容,以便我可以将音量设置为0%,加载文件然后将音量增加到淡入淡出状态吗?

我已经检查过是否可以在播放某个文件后设置音量(例如静音虚拟文件); mplayer抱怨同样的错误。现在,我能想到的唯一选择是启动这样的虚拟文件,调整音量,停止虚拟文件,加载要播放的正确文件,它将从刚设置的音量开始。但我不敢相信这是最好的选择。

2 个答案:

答案 0 :(得分:5)

我自己解决了这个问题:当我尝试关注this guide时,-af volume=0没有帮助。但是,还有一个-volume 0命令行选项对我有用:

mplayer -slave -idle -softvol -volume 0

答案 1 :(得分:2)

我发现这个完美的@我的家庭播放器

重要的是,音量设置:'echo'音量中的1 $ i 1“'否则音量没有变化。

mkfifo / tmp / mi1和/ tmp / mi2 并在此

之前将$ url1和$ url2设置为您的radiostreamurls
mplayer -softvol -slave -input file=/tmp/mi1 $url1 &>/dev/null &  mplayer -softvol -slave -input file=/tmp/mi2 $url2 &  for ((i=1; i<=100; i+=1)); do sleep 0.25; echo "volume $(( 100 - $i )) 1 ">/tmp/mi1; sleep 0.25 ; echo "volume $i 1 ">/tmp/mi2  ; done ;  (sleep 5 ; echo quit >/tmp/mi1 ;echo quit >/tmp/mi2)& 

快乐聆听