我已经安装了play
:
sudo apt-get install sox libsox-fmt-mp3
我现在可以像这样播放音频文件:
play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3
因为我正在学习 shell,所以我希望可以做这样的事情:
(sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) &
几秒后10
,我可以看到如下屏幕:
File Size: 7.38M Bit Rate: 260k
Encoding: MPEG audio Info: 2012
Channels: 2 @ 16-bit Track: 01/09
Samplerate: 44100Hz Album: Maalai Pozhudhin Mayakathilaey :::tunesinn.blogspot.com:::
Replaygain: off Artist: Hemachandra, Achu
Duration: 00:03:46.98 Title: Oh Baby Girl
但歌曲没有播放。但如果我这样做(没有&
):
(sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 )
运行正常。但目前我无法使用我的终端。
我该如何使用来解决我的问题&
?
答案1
由于想要输出其状态,因此后台运行play
失败,例如&
play
In:12.7% 00:00:27.31 [00:03:07.52] Out:1.20M [!=====|=====!] Hd:0.0 Clip:0
但如果在后台运行则不能。因此它会一直等待,直到中止。
要解决这个问题,只需使用play
( -q
quiet) 开关即可。这将成功将其置于后台,并play
在歌曲结束时终止。
(睡觉 10 ;玩耍-q桌面/歌曲/01\ -\ Oh\ Baby\ Girl.mp3 ) &
您可以通过键入以下内容来停止它
killall play
(如果没有其他播放实例正在运行),或者通过kill $!
(如果在启动播放后没有在同一终端中后台运行其他进程 - $!为您提供最后一个后台进程的 PID)
答案2
有一种更好的方法可以从命令行在“后台”运行程序。
sudo apt-get install tmux
它是 Linux 上最漂亮的命令行程序之一。它允许您拥有类似于“浏览器中的选项卡”的功能,并在它们之间无缝切换,而不会中断正在运行的程序。但它不是终端程序本身的选项卡。而是在您启动的特定 shell 中。
安装后输入以下命令启动
tmux
在终端中。
使用 ctrl-A c 创建新的“选项卡” 使用 ctrl-A n 切换到下一个选项卡
这里如果你觉得手册页很难理解,这是一个更详尽的教程
答案3
这对我与 mplayer 一起使用有效
nohup mplayer SomeSong.mp4 > /dev/null 2>&1 &
答案4
我用
cvlc --play-and-exit "$filename" &>/dev/null &
vlc 非常普遍。