是否可以删除当前在 mplayer 中播放的 MP3 文件?

mab*_*enk 5 linux shell mplayer

我想删除当前正在播放的 MP3 文件mplayer。如果可能的话,我想用mplayer命令来做。这样我就不必退出mplayer并删除此文件rm或打开另一个终端并删除那里的文件。

小智 4

是的,可能而且容易。我使用以下内容的修改版本来管理/修剪我的媒体收藏。

(1)保存以下bash脚本(rmplaying.sh)

#/bin/bash
# rmplaying.sh
# only works when exactly 1 instance of mplayer is running
function playing {
PID=`pidof mplayer`
WHICH=`which mplayer`
if [ $PID ]; then
    lsof -p $PID | awk '{ if ($5=="REG" && $4!="mem" && $9)print $0 }' | grep -v "$WHICH" | grep -oP '\/.*'
fi
}

FILE="$(playing)"
echo "file: $FILE"
if [ "$FILE" ]; then
  rm "$FILE" && echo "Removed '$FILE'"
fi
Run Code Online (Sandbox Code Playgroud)

(2)设置权限允许其执行

chmod +x rmplaying.sh
Run Code Online (Sandbox Code Playgroud)

(3) 编辑或创建文件“~/.mplayer/input.conf”并添加以下行

Ctrl+d run "/path/to/rmplaying.sh"
Run Code Online (Sandbox Code Playgroud)

就是这样。

要进行测试,请使用 mplayer 播放文件并按“Ctrl+d”。该文件将通过“rm”命令删除,但媒体将继续播放。

如果您从终端窗口启动 mplayer,您应该会看到消息“已删除'/path/to/media/file.mp3'”。如果您没有使用终端启动它,请检查该文件是否已从其目录中删除。

*将playing()函数移至其自己的实用程序脚本中以进行进一步定制