捋了一下,楼主用进程通讯的,先启动后台进程:
mpv --quiet --no-terminal --no-video --idle=yes --term-status-msg= --input-ipc-server=/tmp/mpvsocket
然后前台使用命令通讯
装载文件:
echo '{ "command": ["loadfile", "/mnt/hgfs/D/music/3.wav"] }' | socat - /tmp/mpvsocket
暂停:
echo '{ "command": ["set_property", "pause", true] }' | socat - /tmp/mpvsocket
继续:
echo '{ "command": ["set_property", "pause", false] }' | socat - /tmp/mpvsocket
播放进度:
echo '{ "command": ["get_property", "playback-time"] }' | socat - /tmp/mpvsocket
获取当前播放文件名:
echo '{ "command": ["get_property", "filename"] }' | socat - /tmp/mpvsocket
获取总时长:
echo '{ "command": ["get_property", "duration"] }' | socat - /tmp/mpvsocket
剩余时长:
echo '{ "command": ["get_property", "time-remaining"] }' | socat - /tmp/mpvsocket
播放进度:
echo '{ "command": ["get_property", "time-pos"] }' | socat - /tmp/mpvsocket
文件信息:
echo '{ "command": ["get_property", "filtered-metadata"] }' | socat - /tmp/mpvsocket
设置音量:
echo '{ "command": ["set_property", "volume", 80] }' | socat - /tmp/mpvsocket
获取当前音量:
echo '{ "command": ["get_property", "volume"] }' | socat - /tmp/mpvsocket
绝对定位(180秒):
echo '{ "command": ["seek", 180, "absolute"] }' | socat - /tmp/mpvsocket
相对定位(往前180秒):
echo '{ "command": ["seek", 180, "relative"] }' | socat - /tmp/mpvsocket
添加到播放列表:
echo '{ "command": ["loadfile", "/mnt/hgfs/D/music/08 初恋女.wav", "append"] }' | socat - /tmp/mpvsocket
显示播放列表:
echo '{ "command": ["get_property", "playlist"] }' | socat - /tmp/mpvsocket
显示当前播放的音乐文件名:
echo '{ "command": ["get_property", "media-title"] }' | socat - /tmp/mpvsocket
显示播放列表音乐数量:
echo '{ "command": ["get_property", "playlist-count"] }' | socat - /tmp/mpvsocket
播放列表序号是2的歌曲:
echo '{ "command": ["set_property", "playlist-pos", 2] }' | socat - /tmp/mpvsocket
获取当前播放的歌曲在列表中的序号:
echo '{ "command": ["get_property", "playlist-pos"] }' | socat - /tmp/mpvsocket
获取工作目录:
echo '{ "command": ["get_property", "working-directory"] }' | socat - /tmp/mpvsocket
获取播放列表序号3的文件名:
echo '{ "command": ["get_property", "playlist/3/filename"] }' | socat - /tmp/mpvsocket
设置循环播放:
echo '{ "command": ["set_property", "loop", true] }' | socat - /tmp/mpvsocket
读取循环播放设置:
echo '{ "command": ["get_property", "loop"] }' | socat - /tmp/mpvsocket
更多使用方法,参考: https://man.archlinux.org/man/community/mpv/mpv.1.en