我希望能夠透過終端啟動視訊播放器(VLC、SMPlayer),使用一些命令,例如,resume_media
然後它會自動在資料夾中找到最近播放的媒體檔案(.mkv、mp4 等)並恢復從停止處開始播放。
我怎樣才能實現這個目標?
答案1
如果您的系統上運行了 Zeitgeist 守護進程,它應該將一些有用的信息保存到 ~/.local/share/recently-used.xbel 檔案中。 Zeitgeist 監視磁碟上檔案的訪問,因此它應該知道您最近播放的視訊檔案。不幸的是,這些文件不是按文件存取權限排序的,但資料庫也包含該信息,因此您可以 grep 所需的所有數據,然後在循環中查找最近的文件。
我剛剛編寫了一個 Bash 腳本來查找最近播放的“video/*”MIME 類型的文件,並使用 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"
將其保存到文件,添加執行權限,它應該可以工作。