Gep*_*nzo 5 sound command-line music mplayer playlists
我正在使用此命令在后台播放音乐(没有 GUI):
mplayer -shuffle -playlist /home/geppettvs/NAS/Musica/playlist.m3u </dev/null >/dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)
这会导致从 NAS 的 Music 文件夹中收集音乐,并在后台播放。
播放列表本身只是一个使用 Rhythmbox 或任何其他具有管理播放列表功能的音乐播放器软件制作的播放列表文件。
因此,mplayer 以随机歌曲开始,之后它将继续不间断地播放音乐。
我需要以某种方式查询 mplayer 并询问它当前正在播放的歌曲名称,以便将其放置在某处,比方说:将其写入文本文件以备后用。(只是没有路径的文件名)
现在,一旦 mplayer 开始播放播放列表中的音乐,一些查询 mplayer 正在播放的内容的努力将导致“playlist.m3u”作为标题名称而不是实际的 mp3 文件名。
我愿意接受任何替代方案,只要有更好的方法可以在没有 GUI 的情况下做到这一点。请告诉我,我会尝试的。欢迎任何想法。
像这个疯狂的脚本应该工作:
lsof -c mplayer | fgrep ".mp3" | awk -F"/" '{ print $NF; }' | cut -d'.' -f1
Run Code Online (Sandbox Code Playgroud)
基本上它是这样工作的:
所以现在你有一种从 mplayer 中抓取歌曲的方法。
请注意,由于 lsof 检查打开的文件,因此需要运行 mplayer 才能使其工作。