次のようなコマンドを使用して、ターミナル経由でビデオ プレーヤー (VLC、SMPlayer) を起動できるようにしたいと思います。resume_media
すると、フォルダー内の最後に再生されたメディア ファイル (.mkv、mp4 など) が自動的に検出され、停止した場所から再生が再開されます。
どうすればこれを実現できるでしょうか?
答え1
システムで Zeitgeist デーモンが動作している場合は、~/.local/share/recently-used.xbel ファイルに役に立つ情報が保存されます。Zeitgeist はディスク上のファイルへのアクセスを監視するため、最近再生したビデオ ファイルを認識しているはずです。残念ながら、ファイルはファイル アクセスによってソートされませんが、データベースにはその情報も含まれているため、必要なすべてのデータを grep してから、ループで最近再生したファイルを検索できます。
私は、最近再生された「video/*」MIME タイプのファイルを検索し、SMPlayer を使用して再生する Bash スクリプトを作成しました (もちろん、任意のビデオ プレーヤーを使用できます)。
#!/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"
ファイルに保存し、実行権限を追加すれば動作するはずです。