如何在M3U播放列表中指定相对路径以访问文件?

9

如何在M3U播放列表中正确指定MP3文件的路径,以便在硬件播放器(如紧凑型和书架音响、微型组件系统、汽车音频播放器)中使用播放列表?我了解路径应该是相对路径,以获得更可靠的播放。例如,Windows Media Player的m3u播放列表在前导反斜杠之前有两个点:

#EXTM3U
#EXTINF:0,Artist - Track Name (Mix).mp3
..\My Album\Artist - Track Name (Mix).mp3

这些点和斜杠对于硬件玩家有任何意义吗?

我的路径看起来像是 "file:///path/to/my/file",我没想到可以去掉 "file://"。(我读得太快了,这可能对其他人有帮助) - ygorg
2个回答

11

我见过的所有播放器(包括Windows Media Player)都支持相对路径。

.. 表示向上一级目录。如果要指定当前路径,可以使用.或者不指定路径。

如果有兼容性问题,请考虑使用正斜杠/。大多数硬件播放器不运行Windows,而大多数Windows软件即使使用反斜杠\也能处理常规斜杠。


那么如果"My Folder"在DVD根目录中,我应该使用路径"My Folder/Artist - Track Name (Mix).mp3"吗? - user2427839
@vestix5 不,你不想要一个前导斜杠。那意味着进入文件系统的根目录。 - Brad
一个注意事项:是否可以调整Windows Media Player的设置,使其在路径中排除点和前导斜杠? - user2427839
你不需要这样做。它读取路径和其他任何东西一样。 - Brad
我指的是在硬件播放器上使用播放列表,而不是在WMP上。我只是用WMP创建m3u文件。 - user2427839
显示剩余4条评论

1
这里是将.m3u文件中的绝对路径转换为相对路径的一行命令(在使用前请更新播放列表名称和用户名):
name='playlistname'; cd /Volumes/'Mac Storage'/Music/Music/playlists; cat $name.m3u >> $name-old.m3u; LC_ALL=C sed -i '' 's/\\Users\\username\\Music\\/\.\.\//g' $name.m3u

意思是:

  • name='playlistname' - 您想更改的播放列表.m3u文件的名称。
  • cd ~/Music/playlists; - 导航到播放列表文件夹。
  • cat playlist.m3u >> playlist-old.m3u; - 在进行更改之前备份您的播放列表。
  • sed -i'' 's/oldtext/newtext/g' playlist.m3u - 在目标播放列表中,用新文本(相对路径:../)替换所有旧文本(绝对路径)的实例 (g表示全局)。
  • LC_ALL=C 避免出现错误: sed: RE error: illegal byte sequence

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接