我做了一个脚本来用 ffmpeg 转换我的东西
它确实:
1 创建带有取消按钮的进度条 2 循环转换文件 3 设置进度值
它工作正常,但是当我单击取消时它不会停止 ffmpeg
奇怪的是,当我使用像 echo 这样的另一个程序时,它的工作方式就像是 ffmpeg 问题
谁能帮我找出诀窍?
listoffile="$HOME/ffmpeglist.lst"
numberoffile=$(wc -l <$listoffile)
ffmpegpath="/usr/bin/ffmpeg"
mystufvariabletouseonmyscript=$(kdialog --progressbar "hello this is a progress bar with 100 steps" 100) ; sleep 2 ; qdbus $mystufvariabletouseonmyscript showCancelButton true
until test "true" = `qdbus $mystufvariabletouseonmyscript wasCancelled` ; do
while read line ; do
qdbus $mystufvariabletouseonmyscript org.kde.kdialog.ProgressDialog.setLabelText $"Starting Conversion...processing file $line"
$ffmpegpath -i "$line" "${line%%.*}.$mp3"
value=$(( $(($a*100))/$numberoffile ))
qdbus $mystufvariabletouseonmyscript Set org.kde.kdialog.ProgressDialog value $value
a=$(($a+1))
done< "$listoffile"
done