61 lines
1.3 KiB
TypeScript
61 lines
1.3 KiB
TypeScript
export interface VideoStudioCreateEdition {
|
|
tasks: VideoStudioTask[]
|
|
}
|
|
|
|
export type VideoStudioTask =
|
|
VideoStudioTaskCut |
|
|
VideoStudioTaskIntro |
|
|
VideoStudioTaskOutro |
|
|
VideoStudioTaskWatermark
|
|
|
|
export interface VideoStudioTaskCut {
|
|
name: 'cut'
|
|
|
|
options: {
|
|
start?: number
|
|
end?: number
|
|
}
|
|
}
|
|
|
|
export interface VideoStudioTaskIntro {
|
|
name: 'add-intro'
|
|
|
|
options: {
|
|
file: Blob | string
|
|
}
|
|
}
|
|
|
|
export interface VideoStudioTaskOutro {
|
|
name: 'add-outro'
|
|
|
|
options: {
|
|
file: Blob | string
|
|
}
|
|
}
|
|
|
|
export interface VideoStudioTaskWatermark {
|
|
name: 'add-watermark'
|
|
|
|
options: {
|
|
file: Blob | string
|
|
}
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
export function isVideoStudioTaskIntro (v: VideoStudioTask): v is VideoStudioTaskIntro {
|
|
return v.name === 'add-intro'
|
|
}
|
|
|
|
export function isVideoStudioTaskOutro (v: VideoStudioTask): v is VideoStudioTaskOutro {
|
|
return v.name === 'add-outro'
|
|
}
|
|
|
|
export function isVideoStudioTaskWatermark (v: VideoStudioTask): v is VideoStudioTaskWatermark {
|
|
return v.name === 'add-watermark'
|
|
}
|
|
|
|
export function hasVideoStudioTaskFile (v: VideoStudioTask): v is VideoStudioTaskIntro | VideoStudioTaskOutro | VideoStudioTaskWatermark {
|
|
return isVideoStudioTaskIntro(v) || isVideoStudioTaskOutro(v) || isVideoStudioTaskWatermark(v)
|
|
}
|