From bbbbfeda12070d6117c2fc2b05f8a453638cc88d Mon Sep 17 00:00:00 2001 From: lyswhut Date: Mon, 6 Jul 2026 20:55:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=AD=8C=E8=AF=8D?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E4=B8=AD=E6=AF=AB=E7=A7=92=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/utils/lyric-font-player/line-player.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/common/utils/lyric-font-player/line-player.js b/src/common/utils/lyric-font-player/line-player.js index b5fa353a..4bd83e3f 100644 --- a/src/common/utils/lyric-font-player/line-player.js +++ b/src/common/utils/lyric-font-player/line-player.js @@ -2,6 +2,7 @@ import { getNow, TimeoutTools } from './utils' const timeFieldExp = /^(?:\[[\d:.]+\])+/g const timeExp = /\d{1,3}(:\d{1,3}){0,2}(?:\.\d{1,3})/g +const msTimeRxp = /\[\d{1,3}(:\d{1,3}){0,2}\.\d{3}]/ const tagRegMap = { title: 'ti', artist: 'ar', @@ -82,6 +83,7 @@ export default class LinePlayer { _initLines() { this.lines = [] + const isMsTime = msTimeRxp.test(this.lyric) const lines = this.lyric.split(/\r\n|\r|\n/) const linesMap = {} for (let i = 0; i < lines.length; i++) { @@ -103,9 +105,10 @@ export default class LinePlayer { if (timeArr.length > 3) continue else if (timeArr.length < 3) for (let i = 3 - timeArr.length; i--;) timeArr.unshift('0') if (timeArr[2].indexOf('.') > -1) timeArr.splice(2, 1, ...timeArr[2].split('.')) + const msTime = timeArr[3] || '0' linesMap[timeStr] = { - time: parseInt(timeArr[0]) * 60 * 60 * 1000 + parseInt(timeArr[1]) * 60 * 1000 + parseInt(timeArr[2]) * 1000 + parseInt(timeArr[3] || 0), + time: parseInt(timeArr[0]) * 60 * 60 * 1000 + parseInt(timeArr[1]) * 60 * 1000 + parseInt(timeArr[2]) * 1000 + parseInt(isMsTime ? msTime : msTime.padEnd(3, '0')), text, extendedLyrics: [], }