我希望能够通过终端启动视频播放器(VLC,SMPlayer),使用一些命令resume_media
,然后它会自动在文件夹中找到最近播放的媒体文件(.mkv,mp4等)并从停止的地方恢复播放。
我怎样才能实现这个目标?
答案1
如果您的系统上运行着 Zeitgeist 守护进程,它应该会将一些有用的信息保存到 ~/.local/share/recently-used.xbel 文件中。Zeitgeist 会监控磁盘上文件的访问情况,因此它应该知道您最近播放的视频文件。遗憾的是,文件并未按文件访问情况排序,但数据库也包含该信息,因此您可以 grep 所需的所有数据,然后循环查找最近的文件。
我刚刚编写了一个 Bash 脚本来查找最近播放的 MIME 类型为“video/*”的文件并使用 SMPlayer 播放它(当然,您可以使用任何视频播放器)。
#!/bin/bash
date_recent=""
file_name=""
# get list of files with MIME type "video/*"
video_files_list=$(grep -B3 "<mime:mime-type type=\"video/" ~/.local/share/recently-used.xbel | grep "modified=")
while read -r line
do
# extract modification time (last access to file)
date_line=$(echo "$line" | cut -d'"' -f6)
if [ "$date_recent" \< "$date_line" ]
then
date_recent=$date_line
file_name=$(echo "$line" | cut -d'"' -f2)
fi
done <<< "$video_files_list"
# file name is encoded like URL, use Python to decode it
file_name=$(python -c "import sys, urllib as ul; print ul.unquote_plus(\"$file_name\")")
# play video
smplayer "$file_name"
将其保存到文件,添加执行权限,它就可以工作了。