如何编写计时器以bash播放视频?

时间:2018-09-21 10:29:53

标签: bash timer

播放视频debate.mkv花费了50分钟。

mplayer   debate.mkv

它播放视频debate.mkv

sleep  60

它使操作系统睡眠1分钟。

我要播放视频1分钟,然后睡眠1分钟,继续在上一个中断点播放视频1分钟,然后睡眠1分钟。

waitTime=60;
for i in {1..50} 
do
    startTime=$(date +%s)
    if [[ $(($(date +%s) - startTime))  -lt $waitTime ]];then
        mplayer   debate.mkv 
    else
        sleep  60
    fi
done 

mplayer debate.mkv不会在$(($(date +%s) - startTime))大于$waitTime时停止,如何解决我的bash代码?

1 个答案:

答案 0 :(得分:0)

无论您提到的mplayer条件如何,恐怕您的代码在启动if命令之后都无法控制(启动/停止)。
请尝试:

#!/bin/bash

waitTime=60
mplayer debate.mkv &
pid=$!    # pid of mplayer above

for i in {1..50}
do
    sleep $waitTime
    kill -s SIGSTOP $pid
    sleep $waitTime
    kill -s SIGCONT $pid
done

与其他命令一样,mplayer在工作时接受信号。 SIGSTOP信号暂停执行,SIGCONT恢复执行。