Repository navigation
v0.26.0
ToneCore v0.26.0
主页专管本地歌曲、曲库专管推荐与下载;取消主页专辑/歌手分类。附:歌词来源质量实测。
变更:两个页面职责分开
按用户要求重新划分:
| 页面 | 职责 |
|---|---|
| 主页 | 显示并处理本地歌曲(列表 + 检索 + 曲库管理) |
| 曲库 | 在线推荐 + 云端搜歌入库 |
此前两页功能交叉:曲库页有一份本地列表和一堆本地管理工具,
主页又摆「最近入库 / 专辑 / 歌手」,同一个东西从几个角度重复摆,
反而不如直接看到歌本身。
主页
- 取消顶部「专辑」「歌手」分类:它们只是把本地歌曲换个角度再摆一遍,
挡住了本地歌曲本体。 - 本地曲库管理迁到列表后方:扫描、元数据审计、补全标签、
清理失效曲目、统计卡 —— 从曲库页整体搬过来,放在本地列表之后。
逻辑上也更顺:先看到歌,再决定要不要维护。
曲库
- 移除本地列表与全部本地管理工具(377 行 → 105 行)。
- 只保留:云端搜索 + 在线推荐。
关于歌词「提前跑完」(实测,本版未改代码)
用户反馈:除个别歌外,其他都提前跑完歌词。
用「歌词末行时间 ÷ 真实时长」实测 8 首(时长用容器内 ffprobe 取真实值):
| 来源 | 曲目 | 末行/时长 |
|---|---|---|
| lrc-file | 天堂岛之歌 | 0.92 |
| lrc-file | 落 | 0.94 |
| embedded | 要不然我们就这样一万年 | 0.91 |
| online | 悬溺 | 1.00 |
| online | 秋天不回来 | 0.89 |
| online | 黯然销魂 | 0.83 |
| online | 思念漫过海岸线 | 0.83 |
| online | 三生三世 | 0.97 |
提前跑完的集中在 online 来源 —— 在线歌词按歌名去搜,
容易命中翻唱或别的版本,时间轴天然对不上本地文件。
这也解释了「只有个别歌正确」:那些歌恰好命中了原版。
本版不做代码改动,因为修法(按真实时长校验候选、命中率低就回退本地来源)
需要更多样本验证,贸然改可能让原本正确的歌也错。列为待办。
关于锁屏不显示动态歌词
浏览器的 Media Session API 只提供 metadata(标题/歌手/专辑图)、
playbackState、positionState,没有任何歌词接口。
锁屏滚动歌词是各家音乐 App 用私有 SDK 实现的,网页拿不到。
所以这是能力边界,不是 bug。专辑图/歌名/歌手能正常显示,
说明 Media Session 这一层已经通了。
验证
npm run build ✅ web + server 均通过
npm test ✅ 15 项全过
页面结构检查:主页与曲库均无悬空引用(filterBy / boards /
home.albums / home.artists 等死引用已清理干净)。
待办
- 歌词:在线来源按真实时长校验候选,过低则回退本地/内嵌来源
- 酷我(kw)在线搜索封面:该平台不返回封面地址
- 音源状态显示口径