From d2270fe3bd2a3697de8dda4728cc755fac7d8407 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 24 Aug 2026 15:16:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A1=A5=E5=85=A8=20bgm=20=E5=A4=B1?= =?UTF-8?q?=E6=95=88=E6=9D=A1=E4=BB=B6=20+=20generateCount>1=20=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E8=B5=B0=20confirmGeneration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. useEffect 依赖补充 bgm,BGM 变化时也清除 previewTaskId 2. generateCount > 1 时跳过 confirmGeneration,直接走 createGenerationTask 以支持批量生成(confirmGeneration 只能单条确认) --- apps/web/src/pages/generate/GeneratePage.tsx | 2 +- apps/web/src/pages/generate/hooks/useGenerateVideo.ts | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/web/src/pages/generate/GeneratePage.tsx b/apps/web/src/pages/generate/GeneratePage.tsx index 29ed669a9..fa48251da 100644 --- a/apps/web/src/pages/generate/GeneratePage.tsx +++ b/apps/web/src/pages/generate/GeneratePage.tsx @@ -107,7 +107,7 @@ const GeneratePage: React.FC = () => { useEffect(() => { setPreviewTaskId(null) // eslint-disable-next-line react-hooks/exhaustive-deps - }, [previewAssetIds, selectedTemplate, duration, videoRatio, titleKey, setPreviewTaskId]) + }, [previewAssetIds, selectedTemplate, duration, videoRatio, titleKey, bgm, setPreviewTaskId]) const previewAssetsEnabled = currentStep >= 4 && previewAssetIds.length > 0 const { diff --git a/apps/web/src/pages/generate/hooks/useGenerateVideo.ts b/apps/web/src/pages/generate/hooks/useGenerateVideo.ts index 569c05793..e8f1d14dc 100755 --- a/apps/web/src/pages/generate/hooks/useGenerateVideo.ts +++ b/apps/web/src/pages/generate/hooks/useGenerateVideo.ts @@ -96,8 +96,10 @@ export function useGenerateVideo(props: UseGenerateVideoProps) { // ── Step7 确认生成:优先复用预览产物(秒出),fallback 到全量渲染 ── let taskId: string | undefined - // 主路径:如果有预览任务 ID,调用 confirmGeneration 复用预览产物 - if (props.previewTaskId) { + // 主路径:如果有预览任务 ID 且只生成 1 个视频,调用 confirmGeneration 复用预览产物 + // generateCount > 1 时需要走 createGenerationTask 支持批量生成 + const isSingleGenerate = !props.generateCount || props.generateCount === 1 + if (props.previewTaskId && isSingleGenerate) { try { console.log( "[handleGenerate] 尝试 confirmGeneration 复用预览产物, previewTaskId:",