- 在后端添加 AI 视频相关接口处理函数 - 扩展前端画布组件支持视频节点类型 - 实现视频上传、生成和播放功能 - 更新画布数据结构文档以包含视频节点 - 添加视频节点的操作工具栏和配置面板 - 集成视频存储和检索服务 - 优化视频节点的渲染和交互体验
40 lines
1.4 KiB
TypeScript
40 lines
1.4 KiB
TypeScript
import { CanvasNodeType } from "./types";
|
|
import type { CanvasNodeMetadata } from "./types";
|
|
|
|
type CanvasNodeSpec = {
|
|
width: number;
|
|
height: number;
|
|
title: string;
|
|
metadata?: CanvasNodeMetadata;
|
|
};
|
|
|
|
export const NODE_DEFAULT_SIZE = {
|
|
[CanvasNodeType.Image]: { width: 340, height: 240, title: "New Generation" },
|
|
[CanvasNodeType.Text]: { width: 340, height: 240, title: "Note" },
|
|
[CanvasNodeType.Config]: { width: 340, height: 240, title: "生成配置" },
|
|
[CanvasNodeType.Video]: { width: 420, height: 236, title: "Video" },
|
|
} satisfies Record<CanvasNodeType, { width: number; height: number; title: string }>;
|
|
|
|
export const NODE_SPECS = {
|
|
[CanvasNodeType.Image]: {
|
|
...NODE_DEFAULT_SIZE[CanvasNodeType.Image],
|
|
metadata: { content: "", status: "idle" },
|
|
},
|
|
[CanvasNodeType.Text]: {
|
|
...NODE_DEFAULT_SIZE[CanvasNodeType.Text],
|
|
metadata: { content: "", status: "idle", fontSize: 14 },
|
|
},
|
|
[CanvasNodeType.Config]: {
|
|
...NODE_DEFAULT_SIZE[CanvasNodeType.Config],
|
|
metadata: { content: "", status: "idle", generationMode: "image" },
|
|
},
|
|
[CanvasNodeType.Video]: {
|
|
...NODE_DEFAULT_SIZE[CanvasNodeType.Video],
|
|
metadata: { content: "", status: "idle" },
|
|
},
|
|
} satisfies Record<CanvasNodeType, CanvasNodeSpec>;
|
|
|
|
export function getNodeSpec(type: CanvasNodeType) {
|
|
return NODE_SPECS[type];
|
|
}
|