Folia 本地歌单操作手册建单、排序、M3U8 导出与导入四个动作一次讲透【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major本文面向使用 Folia 本地曲库的用户围绕本地歌单这条功能线讲清四件事建立歌单、调整歌曲顺序、把歌单导出为 M3U8 文件以及把外部 M3U 文件导回 Folia。四个动作的入口位置、行为边界和代码落点都会给到照着操作即可不需要读源码。本地歌单存的是什么Folia 的本地歌单只保存曲库内歌曲的索引 ID 序列不会复制或移动任何音频文件。这意味着建单、调序、删单都只改动数据库记录磁盘上的音频始终原样。反过来当某首歌或其所在文件夹从曲库中移除时歌单里对应的引用会被同步清理列表不会出现指向不存在文件的失效条目。模块的实现分布在两个服务文件src/services/localPlaylistService.ts负责歌单生命周期创建、更新、删除、排序、收藏都在这里完成src/services/localPlaylistFileService.ts负责 M3U 文本的解析、路径匹配与 M3U8 导出。所有变更都经由 IndexedDB 封装库 Dexie 即时写回数据库定义见 src/services/appDatabase.ts操作完成即已落盘不存在需要手动保存的状态。 建立歌单的四个入口选中建单在本地音乐区选中若干歌曲通过命令面板执行「新建歌单」输入名称即创建。收藏到我喜欢的音乐系统会自动准备一个默认收藏歌单名称为 Liked Songs对歌曲执行「添加到歌单」即可收入其中收藏与取消收藏由setLocalSongFavorite实现。播放中随听随存在播放区或命令面板对当前歌曲执行「添加到歌单」放入任意歌单。整段队列固化队列面板src/components/panelTab/QueueTab.tsx右上角的「保存为歌单」把当前整段播放队列连同顺序一起保存为新歌单。添加歌曲走addSongsToLocalPlaylist内部先做 ID 去重同一首歌第二次加入时会被忽略不会出现重复条目。 调整顺序与删除顺序由用户完全掌控涉及四个操作排序在歌单里拖拽歌曲卡片松手后reorderLocalPlaylistSongs立即把新顺序写回数据库下次打开仍是你排好的样子。移除歌曲removeSongsFromLocalPlaylist只把歌曲从歌单里剔除磁盘文件不受影响。删除歌单deleteLocalPlaylist执行删除带收藏标记的我喜欢的音乐受保护调用时会直接返回canDeleteLocalPlaylist用于判断一个歌单是否允许删除。创建与重命名createLocalPlaylist和updateLocalPlaylist分别处理建单与字段更新更新时自动刷新updatedAt时间戳。 把歌单导出为 M3U8 及其两条路径规则打开一个本地歌单在集合操作里选择「导出 M3U8」。生成内容的特点UTF-8 编码中文歌名不会乱码文件开头是#EXTM3U头与#PLAYLIST:歌单名行每首歌一行#EXTINF:秒级时长与艺术家 - 标题下一行为音频路径歌曲顺序与歌单内完全一致。文件内路径怎么写取决于歌单里歌曲的来源目录规则只有两条歌曲全部来自同一个已导入根目录时写入相对该根目录的路径。把.m3u8放到这个根目录里即可直接播放歌曲来自多个根目录时保留各根目录名称。把.m3u8放到这些目录的共同父目录下使用。文本由serializeLocalPlaylistToM3u8序列化下载动作在downloadLocalPlaylistM3u8生成.m3u8文件并触发浏览器保存。 从 M3U 文件导入歌单本地音乐库首页的「导入歌单」同时接受.m3u与.m3u8。有一个前提文件里引用的音乐文件夹必须已经加入曲库。导入只在现有索引里做路径匹配既不会自动导入音频文件也不会申请新的文件夹权限。路径解析相当宽容normalizeM3uPath能识别以下写法/或\分隔的任意混合、Windows 绝对路径D:\music\...这类盘符形式、file://URL、普通相对路径普通网络地址如 http 链接则会被直接判为无法匹配不会被误映射成本地歌曲。匹配过程对每条路径做三步查找先按归一化后的完整路径比对再按去掉导入根目录后的相对路径比对最后退化为按纯文件名比对。命中唯一一首歌即算匹配成功找不到记为未匹配对应到多首歌记为歧义两类路径都会跳过。导入完成后界面会给出成功匹配的歌曲数以及被跳过的未匹配、歧义路径数量。新建立的本地歌单优先取文件内#PLAYLIST:行指定的名称没有该行时取文件名去掉扩展名后的部分。边界与常见问题歌单里还会留下被删歌曲的条目吗不会。从曲库删除歌曲或整个文件夹时歌单引用同步清理列表只保留仍然有效的歌曲。导出的 M3U8 换设备还能用吗可以前提是目标设备上存在对应的音乐文件且目录结构与文件中的相对路径一致。M3U8 本质上只是一张路径清单不带音频数据。支持 foobar2000 的 .fpl 格式吗暂不支持.fpl是二进制格式跨播放器迁移请使用 M3U 或 M3U8。想让某些目录不进曲库怎么办参考 docs/local-library-management.md 中的.foliaignore排除规则。被排除的内容不会进曲库歌单引用自然也不会指向它们。本地歌单这条线到此闭环引用式存储保证操作可逆Dexie 即时写入保证顺序不丢M3U8 双向通道保证歌单可以离开 Folia 再回来。【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?