diff --git a/apps/web/src/pages/ai-avatar/AiAvatarPage.tsx b/apps/web/src/pages/ai-avatar/AiAvatarPage.tsx index 00e1cd734..d345c473e 100644 --- a/apps/web/src/pages/ai-avatar/AiAvatarPage.tsx +++ b/apps/web/src/pages/ai-avatar/AiAvatarPage.tsx @@ -36,7 +36,9 @@ const AiAvatarPage: React.FC = () => { /* ── 对口型生成弹窗 ── */ const [showLipsyncModal, setShowLipsyncModal] = useState(false) - const [lipsyncStatus, setLipsyncStatus] = useState<"generating" | "completed" | "failed">("generating") + const [lipsyncStatus, setLipsyncStatus] = useState<"generating" | "completed" | "failed">( + "generating", + ) const [lipsyncErrorMessage, setLipsyncErrorMessage] = useState("") /* ── 对口型轮询 ── */ @@ -65,7 +67,7 @@ const AiAvatarPage: React.FC = () => { setShowLipsyncModal(true) setLipsyncStatus("generating") setLipsyncErrorMessage("") - + // ① 先按素材 id 拿 file_url(#1809 补充:对齐后端新参数 video_url) console.log("[对口型] 开始生成:", { videoId: video.id, @@ -101,7 +103,11 @@ const AiAvatarPage: React.FC = () => { try { const updated = await getLipsyncJob(job.id) state.setLipsyncJob(updated) - console.log("[对口型] 轮询状态:", { id: updated.id, status: updated.status, error: updated.error_message }) + console.log("[对口型] 轮询状态:", { + id: updated.id, + status: updated.status, + error: updated.error_message, + }) if (updated.status === "completed") { if (lipsyncTimerRef.current) clearInterval(lipsyncTimerRef.current) setLipsyncStatus("completed") @@ -331,26 +337,44 @@ const AiAvatarPage: React.FC = () => { ✕ -
+
{lipsyncStatus === "generating" && ( <>
-
对口型视频生成中…
-
请勿关闭页面,完成后将自动提示
+
+ 对口型视频生成中… +
+
+ 请勿关闭页面,完成后将自动提示 +
)} {lipsyncStatus === "completed" && ( <>
✅
-
对口型视频生成完成
+
+ 对口型视频生成完成 +
)} {lipsyncStatus === "failed" && ( <>
❌
-
对口型生成失败
+
+ 对口型生成失败 +
{lipsyncErrorMessage && ( -
{lipsyncErrorMessage}
+
+ {lipsyncErrorMessage} +
)} )}