在Raspberry上,我制作了一个带有电影和图片的自定义幻灯片。我正在扩展脚本,所以我也可以选择一个剪辑来播放。我制作了一个包含3个选项的菜单:
幻灯片是一个无限循环:
case $opt in
"Slideshow")
PLAY="1"
while true; do
if [ "$PLAY" = "1" ];
then
PLAY=2
bash ./videoplayer.sh
else
PLAY=1
bash ./pictureplayer.sh
fi
done
;;
videoplayer.sh的例子:
VIDEOPATH="/home/pi/ftp/video"
for entry in $VIDEOPATH/*
do
clear
omxplayer "$entry" > /dev/null
done
pictureplayer.sh的例子:
PICTUREPATH="/home/pi/ftp/picture"
fbi -a --noverbose -t 30 -u -1 $PICTUREPATH/*.png
在任何特定时刻,我想停止while循环并再次显示菜单。即使它是在播放剪辑的中间。我只找到了可以在每次播放剪辑/图片之后或之前读取输入的选项。
答案 0 :(得分:0)
您有两个问题:停止剪辑,如果您想要即时回复,请accepting keys instead of input lines。在后台运行幻灯片,然后在case $opt in
"Slideshow")
(set -m # set up process groups
./slideshow.sh & # the existing loop
read -n1
kill -HUP %+) # subshell suppresses signal reporting
;;
返回后将其终止:
kill
一个-m
会影响所有进程(demo),因为启用了作业控制(bash
)的shell会将它们全部放入进程组中。 (请注意,如果您为文件指定shebang并使其可执行,则不必将(b)
放在shell脚本名称前面。)