forked from 77media/video-flow
新增 使用后端返回的snapshot
This commit is contained in:
parent
7beab504af
commit
79b7f43c0f
@ -267,6 +267,8 @@ export interface VideoData {
|
||||
video_name_prefix: string;
|
||||
/** 视频URL列表 */
|
||||
urls: string[];
|
||||
/** 视频封面图(后端返回) */
|
||||
snapshot_urls?: string[];
|
||||
/** 视频状态 */
|
||||
video_status: number;
|
||||
}
|
||||
@ -654,6 +656,7 @@ export interface ShotVideo {
|
||||
urls: string[];
|
||||
video_status: number;
|
||||
type: string;
|
||||
snapshot_url?: string;
|
||||
}
|
||||
|
||||
// 执行loading文字映射
|
||||
@ -700,5 +703,6 @@ export interface TaskObject {
|
||||
final: {
|
||||
url: string;
|
||||
note: string;
|
||||
snapshot_url?: string;
|
||||
}; // 剪辑视频
|
||||
}
|
||||
@ -214,7 +214,7 @@ export function ThumbnailGrid({
|
||||
>
|
||||
<img
|
||||
className="w-full h-full object-cover"
|
||||
src={getFirstFrame(taskObject.final.url)}
|
||||
src={taskObject.final.snapshot_url || getFirstFrame(taskObject.final.url)}
|
||||
draggable="false"
|
||||
alt="final video thumbnail"
|
||||
/>
|
||||
@ -226,7 +226,7 @@ export function ThumbnailGrid({
|
||||
muted
|
||||
playsInline
|
||||
loop
|
||||
poster={getFirstFrame(taskObject.final.url)}
|
||||
poster={taskObject.final.snapshot_url || getFirstFrame(taskObject.final.url)}
|
||||
preload="none"
|
||||
/>
|
||||
)}
|
||||
@ -288,7 +288,7 @@ export function ThumbnailGrid({
|
||||
>
|
||||
<img
|
||||
className="w-full h-full object-cover"
|
||||
src={getFirstFrame(taskObject.videos.data[index].urls[0])}
|
||||
src={taskObject.videos.data[index].snapshot_url || getFirstFrame(taskObject.videos.data[index].urls[0])}
|
||||
draggable="false"
|
||||
alt="video thumbnail"
|
||||
/>
|
||||
@ -300,7 +300,7 @@ export function ThumbnailGrid({
|
||||
muted
|
||||
playsInline
|
||||
loop
|
||||
poster={getFirstFrame(taskObject.videos.data[index].urls[0])}
|
||||
poster={taskObject.videos.data[index].snapshot_url || getFirstFrame(taskObject.videos.data[index].urls[0])}
|
||||
preload="none"
|
||||
/>
|
||||
)}
|
||||
|
||||
@ -206,6 +206,7 @@ export function useWorkflowData({}: UseWorkflowDataProps = {}) {
|
||||
const all_task_data = response.data;
|
||||
const { current: taskCurrent } = tempTaskObject;
|
||||
let combinerVideoUrl = '';
|
||||
let combinerVideoPoster = '';
|
||||
|
||||
// 收集所有需要更新的状态
|
||||
let stateUpdates = JSON.stringify(taskCurrent);
|
||||
@ -288,7 +289,8 @@ export function useWorkflowData({}: UseWorkflowDataProps = {}) {
|
||||
urls: videoUrls,
|
||||
video_id: video.video_id,
|
||||
video_status: video_status, // 0 生成中 1 生成完成 2 生成失败
|
||||
type: 'video'
|
||||
type: 'video',
|
||||
snapshot_url: video.snapshot_url
|
||||
});
|
||||
}
|
||||
taskCurrent.videos.data = videoList;
|
||||
@ -312,6 +314,7 @@ export function useWorkflowData({}: UseWorkflowDataProps = {}) {
|
||||
if (task.task_name === 'combiner_videos') {
|
||||
if (task.task_status === 'COMPLETED') {
|
||||
combinerVideoUrl = task.task_result.video_url;
|
||||
combinerVideoPoster = task.task_result.snapshot_url;
|
||||
}
|
||||
if (task.task_status === 'FAILED' || task.task_status === 'ERROR') {
|
||||
taskCurrent.status = 'FAILED';
|
||||
@ -338,6 +341,7 @@ export function useWorkflowData({}: UseWorkflowDataProps = {}) {
|
||||
taskCurrent.currentStage = 'final_video';
|
||||
taskCurrent.final.url = combinerVideoUrl;
|
||||
taskCurrent.final.note = 'combiner';
|
||||
taskCurrent.final.snapshot_url = combinerVideoPoster;
|
||||
taskCurrent.status = 'COMPLETED';
|
||||
// 停止轮询
|
||||
setNeedStreamData(false);
|
||||
@ -492,7 +496,8 @@ export function useWorkflowData({}: UseWorkflowDataProps = {}) {
|
||||
urls: videoUrls,
|
||||
video_id: video.video_id,
|
||||
video_status: video_status, // 0 生成中 1 生成完成 2 生成失败
|
||||
type: 'video'
|
||||
type: 'video',
|
||||
snapshot_url: video.snapshot_urls?.[0] || ''
|
||||
});
|
||||
}
|
||||
taskCurrent.videos.data = videoList;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user