如何让视频播放器从上次停止的地方继续播放?

如何让视频播放器从上次停止的地方继续播放?

我希望能够通过终端启动视频播放器(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"

将其保存到文件,添加执行权限,它就可以工作了。

相关内容