From 2f58674679630146e3c36decf7ffff7fd092a9aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=AE=8F=E6=9D=B0?= Date: Wed, 19 Aug 2026 14:41:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20MP4=20fullbox=E5=81=8F=E7=A7=BB=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3+=E6=A0=87=E9=A2=98=E5=85=A8=E8=A7=92/=E5=8D=8A?= =?UTF-8?q?=E8=A7=92=E6=96=9C=E6=9D=A0=E6=8D=A2=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - findCodecConfig: 容器box内容偏移从+8改为+12(fullbox 12字节头) - drawTitle: split支持半角/和全角/两种换行符 --- apps/web/src/pages/generate/hooks/useCanvasPlayer.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/web/src/pages/generate/hooks/useCanvasPlayer.ts b/apps/web/src/pages/generate/hooks/useCanvasPlayer.ts index a95eab845..b7862e664 100644 --- a/apps/web/src/pages/generate/hooks/useCanvasPlayer.ts +++ b/apps/web/src/pages/generate/hooks/useCanvasPlayer.ts @@ -28,8 +28,8 @@ function findCodecConfig(buffer: ArrayBuffer, start: number, end: number): Array // 容器 box(fullbox 多 4 字节) const containerBoxes = ["trak", "mdia", "minf", "stbl"] if (containerBoxes.includes(type)) { - // stbl 是 fullbox,跳过 4 字节 version/flags - const contentStart = offset + 8 + // fullbox: size(4) + type(4) + version(1) + flags(3) = 12 bytes header + const contentStart = offset + 12 const result = findCodecConfig(buffer, contentStart, offset + size) if (result) return result } else if (type === "stsd") { @@ -431,7 +431,7 @@ export function useCanvasPlayer( ctx.textAlign = "center" // 按 "/" 分割为多行("/" 作为手动换行符) - const lines = title.text.split("/") + const lines = title.text.split(/[//]/) const lineHeight = fontSize * 1.3 const totalHeight = lines.length * lineHeight -- 2.54.0