Files
AIGC/demo/deploy_baota/frontend/static/textToVideo-fa74ef61.js

2 lines
1.4 KiB
JavaScript
Raw Normal View History

import{e as a}from"./index-e070bca6.js";const c={createTask(t){if(!t)throw new Error("参数不能为空");if(!t.prompt||t.prompt.trim()==="")throw new Error("文本描述不能为空");if(!t.aspectRatio)throw new Error("视频比例不能为空");if(!t.duration||t.duration<1||t.duration>60)throw new Error("视频时长必须在1-60秒之间");return a({url:"/text-to-video/create",method:"POST",data:{prompt:t.prompt.trim(),aspectRatio:t.aspectRatio,duration:t.duration,hdMode:t.hdMode}})},getTasks(t=0,u=10){return a({url:"/text-to-video/tasks",method:"GET",params:{page:t,size:u}})},getTaskDetail(t){return a({url:`/text-to-video/tasks/${t}`,method:"GET"})},getTaskStatus(t){return a({url:`/text-to-video/tasks/${t}/status`,method:"GET"})},pollTaskStatus(t,u,l,e){let r=!0,i=0;const d=30,n=async()=>{if(!r||i>=d){i>=d&&e&&e(new Error("任务超时"));return}try{const o=await a({url:`/text-to-video/tasks/${t}/status`,method:"GET"});if(!o||!o.data||!o.data.success){e&&e(new Error("获取任务状态失败")),r=!1;return}const s=o.data.data;if(!s||!s.status){e&&e(new Error("无效的任务数据")),r=!1;return}if(s.status==="COMPLETED"){l&&l(s),r=!1;return}if(s.status==="FAILED"||s.status==="CANCELLED"){e&&e(new Error(s.errorMessage||"任务失败")),r=!1;return}u&&u({status:s.status,progress:s.progress||0,resultUrl:s.resultUrl}),i++,setTimeout(n,12e4)}catch(o){console.error("轮询任务状态失败:",o),e&&e(o),r=!1}};return n(),()=>{r=!1}}};export{c as t};