如何讓影片播放器從上次中斷的地方繼續播放?

如何讓影片播放器從上次中斷的地方繼續播放?

我希望能夠透過終端啟動視訊播放器(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"

將其保存到文件,添加執行權限,它應該可以工作。

相關內容