blob: ea9f48f383e78c8ef2324d6164f44d300b8c9a3f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
export type DesktopExportBegin = {
width: number;
height: number;
fpsNumerator: number;
fpsDenominator: number;
format: "mp4" | "webm";
quality: "low" | "medium" | "high" | "very_high";
hasAudio: boolean;
sampleRate: number;
channels: number;
defaultFileName: string;
};
export type OpenCutDesktop = {
isDesktop: true;
exportBegin: (
opts: DesktopExportBegin,
) => Promise<{ id: string; filePath: string } | null>;
exportWriteAudio: (id: string, pcm: ArrayBuffer) => Promise<void>;
exportWriteFrame: (id: string, rgba: ArrayBuffer) => Promise<void>;
exportFinish: (id: string) => Promise<void>;
exportCancel: (id: string) => Promise<void>;
revealFile: (path: string) => Promise<void>;
};
declare global {
interface Window {
opencutDesktop?: OpenCutDesktop;
}
}
export function getDesktopBridge(): OpenCutDesktop | null {
if (typeof window === "undefined") return null;
return window.opencutDesktop ?? null;
}
|