Ant*_*t's 12 command-line music bash sox
我已经安装play
:
sudo apt-get install sox libsox-fmt-mp3
Run Code Online (Sandbox Code Playgroud)
我现在可以像这样播放我的音频文件:
play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3
Run Code Online (Sandbox Code Playgroud)
由于我正在学习 shell,我希望我可以做这样的事情:
(sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) &
Run Code Online (Sandbox Code Playgroud)
几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
Run Code Online (Sandbox Code Playgroud)
但是这首歌没有播放。但如果我这样做(没有&
):
(sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 )
Run Code Online (Sandbox Code Playgroud)
正在按预期工作。但同时我无法使用我的终端。
我如何解决我的问题,使用&
?
ish*_*ish 13
Backgroundingplay
与&
失败,因为play
要输出其状态,如
In:12.7% 00:00:27.31 [00:03:07.52] Out:1.20M [!=====|=====!] Hd:0.0 Clip:0
Run Code Online (Sandbox Code Playgroud)
但如果有背景就不能。所以它一直等待直到中止。
要解决此问题,只需play
使用-q
(安静)开关运行即可。这将成功地将其作为背景,并play
在歌曲结束时终止。
(sleep 10 ; play -q Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) &
您可以通过键入
killall play
(如果没有其他播放实例正在运行)或通过kill $!
(如果您在开始播放后没有在同一终端中后台处理其他进程 - $! 为您提供最后一个后台进程的 PID )来停止它