**版本**:SPlayer Next v1.1.0(Windows 11 x64,安装版) **现象**:播放网易云歌曲 1321329039(Nürnberg - Valasy),界面标签显示 NO-LRC,没有歌词。网易云这首其实有原文歌词和中文翻译。 **原因**:这首歌网易云返回的歌词正文时间标签不带小数,例如: ``` [00:29]Мае рукі ў тваіх валасах, [00:35]А ў вочах адчай. ``` 翻译(tlyric)同样是 `[mm:ss]`。渲染层 LRC 解析用的正则(`out/renderer/assets/index-CeW07D-z.js`): ```js const BRACKET_TIME_RE = /\[(\d+):(\d+)[.:](\d{1,3})\]/g; ``` 要求必须有小数部分,`[00:29]` 匹配不上,正文全部被跳过;`/api/song/lyric/v1` 返回的作词、作曲两行是 JSON 格式,也不进结果。最后解析出 0 行,`activeLyric` 为空,标签显示 NO-LRC。 **复现**:把发布包里从 `const MAX_TIME = ` 到 `const LINE_HEADER_RE$2` 的解析代码原样取出来,喂这首歌接口返回的歌词: | 输入 | 解析出的行数 | |---|---| | 原文 lrc 原样 | 0 | | 原文 lrc,标签补成 `[mm:ss.00]` | 9 | | 翻译 tlyric 原样 | 0 | | 翻译 tlyric,标签补成 `[mm:ss.00]` | 9 | dev 分支改用 `lyric-kit ^0.6.0` 以后,里面的 `BRACKET_TIME_RE` 与 v1.1.0 相同,看起来同样会受影响(没有在 dev 上实测)。 **建议**:小数部分改成可选,缺省按 0 毫秒处理,例如: ```js const BRACKET_TIME_RE = /\[(\d+):(\d+)(?:[.:](\d{1,3}))?\]/g; ```
Activity
github-actions commentedon Oct 1, 2026
👋 @nattwood913-web
感谢提交 Issue!我们已经收到您的反馈,会尽快确认您的问题。
Thanks for opening this issue! We have received your report and will review it as soon as possible.
fix: 修复整秒歌词解析并完善下载导出 (Fixed SPlayer-Dev#338)