文件播放完毕后立即退出的命令行音频播放器?

sda*_*aau 6 alsa audio pulseaudio

我正在命令行中试验音频播放器,并注意到一些奇怪的东西:如果声音很短,大多数播放器会在播放完成后花费一两秒钟,然后才最终退出,并将控制权交还给终端!

ffplay从音频文件开始时似乎运行频谱图,解决这个问题的建议是:

<hypnocat> how can i turn off the spectrogram display?
<sacarasc_> Why would you want to?
<hypnocat> i don't want an extra window to appear, or for ffplay to waste extra processing power displaying it
<hypnocat> it's distracting, annoying, and wasteful
<sacarasc_> Minimise it, and if it's wasteful, your computer is either really, really old or you're overly sensitive to waste...
<hypnocat> my computer is old
Run Code Online (Sandbox Code Playgroud)

...所以我不会真正将其视为命令行播放器;但我已经在我的 Ubuntu 11.04 上尝试过这些命令gnome-terminal

aplay --buffer-size=10 -q /usr/share/sounds/speech-dispatcher/test.wav
canberra-gtk-play -c never -f /usr/share/sounds/speech-dispatcher/test.wav
mplayer -really-quiet /usr/share/sounds/speech-dispatcher/test.wav
pacat -p --rate 16000 --channels 1 --latency-msec=1 --process-time-msec=2 /usr/share/sounds/speech-dispatcher/test.wav
play -q /usr/share/sounds/speech-dispatcher/test.wav  # with sox
Run Code Online (Sandbox Code Playgroud)

speech-dispatcher/test.wav声音本身是0.542秒,但这些程序要求大约一到两秒钟(或更多)之后该文件已播放完毕的终端。为什么会发生这种情况 - 我该如何避免?如果这些应用程序无法实现,是否存在命令行音频播放器,它们会在音频文件播放完毕后立即退出?

编辑:对于那些感兴趣的人,这就是我需要的问题 #208391:问题:“xorg”包:Ubuntu:让 X11 XBell 事件通过 PulseAudio 播放;我通过将播放器(在这种情况下,canberra-gtk-play)作为一个进程(使用&)来解决等待时间问题。但我还是想知道为什么短文件会出现这种退出延迟?又是如何得出cvlc,按@Anthon的回答,可以用于立即退出情况?

小智 6

试试这个ffplay

ffplay -autoexit -nodisp -loglevel panic /usr/share/sounds/speech-dispatcher/test.wav 
Run Code Online (Sandbox Code Playgroud)


Ant*_*hon 4

我用:

cvlc --no-one-instance --volume 150 <soundfile>
Run Code Online (Sandbox Code Playgroud)

播放短声音(< 1 秒)作为程序活动的通知。

确保--no-one-instance此播放不会在可能在我的“正常”vlc 中运行的内容(例如音乐)之后安排,并且设置为具有单个实例,并且为此进行额外的调用(命令行,双击),添加文件到播放列表。