Как правильно указать относительный путь к файлу в плейлистах m3u?
Как правильно указать путь к mp3-файлу в плейлистах M3U, для использования плейлистов в аппаратных проигрывателях, таких как компактные и полочные стереосистемы, Микрокомпонентные системы, автомобильные аудиоплееры? Я понимаю, что путь должен быть относительным, для более надежного воспроизведения. Например, плейлист Windows Media Player m3u имеет две точки перед ведущей косой чертой:
#EXTM3U
#EXTINF:0,Artist - Track Name (Mix).mp3
..My AlbumArtist - Track Name (Mix).mp3
имеет ли это точки и ведущие назад косые черты какой-либо смысл для аппаратных игроков?
2 ответов
все игроки, которых я видел (включая проигрыватель Windows Media), принимают относительные пути.
на .. означает один каталог вверх. Если вы хотите указать текущий путь, используйте ., или не указывайте его вообще.
если у вас есть проблемы с совместимостью, рассмотрите возможность использования регулярных" прямых " косых черт / вместо. Большинство аппаратных проигрывателей не работают под управлением Windows, и большинство программ Windows могут обрабатывать обычные косые черты, даже если пути Windows используют обратные косые черты \.
вот однострочная команда для преобразования абсолютного в относительное для an .файл m3u (обновление playlistname и имя пользователя перед использованием):
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для глобального) oldtext (абсолютный путь) с newtext (относительный путь:../). -
LC_ALL=Cизбегает ошибки, которая иногда возникает:sed: RE error: illegal byte sequence.