diff --git a/apps/web/src/pages/generate/components/PreviewVideoPanel.tsx b/apps/web/src/pages/generate/components/PreviewVideoPanel.tsx index ea74a1621..04e6a66f0 100644 --- a/apps/web/src/pages/generate/components/PreviewVideoPanel.tsx +++ b/apps/web/src/pages/generate/components/PreviewVideoPanel.tsx @@ -284,6 +284,13 @@ export const PreviewVideoPanel: React.FC = ({ // 优先用 document.fonts.check 精确检测目标字体 if (document.fonts.check(fontSpec)) { setFontLoaded(true) + // 字体已就绪,立即触发重绘 + requestAnimationFrame(() => { + if (!cancelled) { + drawVideoTitle() + drawNoVideoTitle() + } + }) return } @@ -292,17 +299,24 @@ export const PreviewVideoPanel: React.FC = ({ .load(fontSpec) .then(() => { if (!cancelled) { - // requestAnimationFrame 确保在下一帧绘制前字体已可用 requestAnimationFrame(() => { - if (!cancelled) setFontLoaded(true) + if (!cancelled) { + setFontLoaded(true) + // 字体加载完成,显式触发重绘 + drawVideoTitle() + drawNoVideoTitle() + } }) } }) .catch(() => { - // load 失败时回退到 fonts.ready if (!cancelled) { document.fonts.ready.then(() => { - if (!cancelled) setFontLoaded(true) + if (!cancelled) { + setFontLoaded(true) + drawVideoTitle() + drawNoVideoTitle() + } }) } })