我使用名为 ranger 的文件浏览器,我想知道是否可以使用 mplayer 打开不同目录中的多个文件?
我已经可以做的是从一个目录中选择所有文件(按v),然后按Enter。 Mplayer 启动,该目录中的所有文件都会依次播放。
但是如果我想播放不同目录中的文件列表怎么办?
编辑:更一般地说,我想知道如何运行一个将不同目录中的文件作为参数的命令。
答案1
回答来自:http://ranger.carina.uberspace.de/qa/358/open-several-marked-files。我测试了这个并且它有效。
标记仅限于 1 个目录。要打开多个目录中的文件,您需要使用复制缓冲区:
- 移动到要使用的文件并键入“ya”以将文件添加到复制缓冲区。如果您用空格或 v 标记文件,它们将同时添加。
类型:
:shell命令%c
通过给定命令使用所有文件。 %c 扩展到复制缓冲区的所有文件。
- 最后键入“uy”以重置复制缓冲区。
答案2
您应该使用smplayer
(最好的 GUI mplayer
,它支持所有功能mplayer
)而不是mplayer
(这是一个命令行工具)。
如果您的音频文件打开命令如下所示
smplayer -add-to-playlist
选定的文件将被添加到 smplayer 的内部播放列表中。您可以轻松地选择并添加不同目录中的文件进行播放。
答案3
mplayer2
这是我的解决方案,用于按ranger
随机顺序播放目录和所有子目录中的所有文件。这并不完全是问题的答案,但也许你可以扩展它。
首先我写了一个 shell 脚本,名为ptv
:
#!/bin/sh
if [[ -z "$1" ]]; then
echo "usage: $(basename $0) directory [count]"
else
if [[ ! -z "$2" ]]; then
SHUFPARAM="-n$2"
fi
PLAYLIST="/tmp/playlist-$(whoami)"
CWD="$(realpath "$1")"
find "$CWD" -type f -iname \*.mkv -or -iname \*.mp4 -or -iname \*.avi | shuf $SHUFPARAM > $PLAYLIST && \
mplayer2 --playlist=$PLAYLIST && rm -f $PLAYLIST
fi
该脚本在给定目录中查找我的所有电影文件,创建一个随机排序的播放列表并调用mplayer2
此生成的播放列表。shuf
如果您想要一个排序列表,请忽略该命令。
下一步是rifle.conf
在您的设置目录 ( ~/.config/ranger
) 中进行编辑。添加这一行:
directory, label pseudoTV, has mplayer2, flag f = /path/to/ptv "$@"
现在您可以使用脚本open_with
(映射到键:)r
和mplayer2
。mplayer2
您可以在播放列表项目之间<
进行导航。>
提示:将目录复制到yank_buffer
并将其保存为ranger
.然后展开ptv
以在所有选定的目录中查找文件...
答案4
你最好使用一个命令行界面启动 mplayer,在 Linux 中是壳,看我的命令:
~bash~ $ mplayer 1st_screen/JacksonSisters-IBelieveInMiracles.mp3 \
> 2nd_screen/\(15\)\ Memory\ Gospel\ -\ Moby.flac \
> 3rd_screen/01\ -\ Iggy\ Pop\ -\ Livin\'\ on\ the\ Edge\ of\ the\ Night.flac \
> 4th_screen/05\ -\ We\ Must\ Believe\ In\ Magic.flac
其中 1st_screen、2nd_screen、3rd_screen、4th_screen 是不同的目录。
您始终可以在不同的 shell 中同时启动两个 mplayer 实例,两首歌曲将同时发出声音。