From 4429784a79580eafca75c9105ec04993cbf7f028 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 20:35:07 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=88=A0=E9=99=A4=20createPreview?= =?UTF-8?q?=20=E8=B0=83=E7=94=A8=EF=BC=8C=E7=A1=AE=E8=AE=A4=E7=94=9F?= =?UTF-8?q?=E6=88=90=E4=B8=8D=E5=86=8D=E8=A7=A6=E5=8F=91=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 createPreview API 导入和调用 - 预览已改为前端实时播放(Canvas + WebCodecs) - taskId 改为直接使用 props.previewTaskId - 移除 useCallback 依赖中的 selectedTemplate --- .../pages/generate/hooks/useGenerateVideo.ts | 32 +++---------------- 1 file changed, 5 insertions(+), 27 deletions(-) diff --git a/apps/web/src/pages/generate/hooks/useGenerateVideo.ts b/apps/web/src/pages/generate/hooks/useGenerateVideo.ts index 73455a308..c1b8dc55b 100755 --- a/apps/web/src/pages/generate/hooks/useGenerateVideo.ts +++ b/apps/web/src/pages/generate/hooks/useGenerateVideo.ts @@ -5,7 +5,7 @@ import { useState, useCallback } from "react" import { message } from "antd" import type { GeneratedVideo } from "@/api/template-editor" -import { confirmGeneration, createPreview } from "@/api/generation" +import { confirmGeneration } from "@/api/generation" import type { UseGenerateVideoProps } from "./generate-video/types" import { getGenerationPhase } from "./generate-video/phase" import { useGenerationPolling } from "./generate-video/useGenerationPolling" @@ -87,32 +87,10 @@ export function useGenerateVideo(props: UseGenerateVideoProps) { outputHeight = 1920 } - // 获取或创建后端任务 ID - // 预览改为前端播放后,不再有预览任务,需要在此处创建 - let taskId = props.previewTaskId + // 获取后端任务 ID(预览已改为前端实时播放,不再调用后端 createPreview) + const taskId = props.previewTaskId if (!taskId) { - const assetIds = - props.materialMode === "auto" ? props.smartSelectedIds : props.selectedMaterials - const previewResp = await createPreview({ - template_id: selectedTemplate, - asset_ids: assetIds, - duration: props.duration || undefined, - video_ratio: props.videoRatio, - voice_ids: undefined, - title_config: props.titleSettings?.title - ? { - text: props.titleSettings.title, - font: props.titleSettings.font, - font_size: props.titleSettings.size, - font_color: props.titleSettings.color, - position: props.titleSettings.position, - bold: props.titleSettings.bold, - stroke: props.titleSettings.stroke, - shadow: props.titleSettings.shadow, - } - : undefined, - }) - taskId = previewResp.task_id + throw new Error("缺少预览任务 ID,无法确认生成") } await confirmGeneration(taskId, { @@ -132,7 +110,7 @@ export function useGenerateVideo(props: UseGenerateVideoProps) { setGenerateError(finalMsg) message.error(finalMsg) } - }, [props, clearTimer, startPolling, selectedTemplate]) + }, [props, clearTimer, startPolling]) /* 重新生成(失败后重试) */ const retry = useCallback(() => {