@vvfx/artis 0.0.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/dist/artis/artis.d.ts +44 -0
- package/dist/artis/base-artis.d.ts +520 -0
- package/dist/artis/canvas-layer-order.d.ts +19 -0
- package/dist/artis/create-info-to-schema.d.ts +21 -0
- package/dist/artis/index.d.ts +15 -0
- package/dist/artis/operations/index.d.ts +3 -0
- package/dist/artis/operations/operations.d.ts +362 -0
- package/dist/artis/operations/scene-operations.d.ts +26 -0
- package/dist/artis/operations/types.d.ts +39 -0
- package/dist/artis/scene-artis.d.ts +386 -0
- package/dist/artis/screenshot-service.d.ts +83 -0
- package/dist/artis/types.d.ts +130 -0
- package/dist/artis/wiring/index.d.ts +17 -0
- package/dist/artis/wiring/register-commands.d.ts +44 -0
- package/dist/artis/wiring/setup-commands.d.ts +5 -0
- package/dist/artis/wiring/setup-event-bindings.d.ts +16 -0
- package/dist/artis/wiring/setup-keybindings.d.ts +38 -0
- package/dist/artis/wiring/setup-plugins.d.ts +5 -0
- package/dist/artis/wiring/wiring-context.d.ts +34 -0
- package/dist/artis-sdk/artis-sdk.d.ts +1117 -0
- package/dist/artis-sdk/index.d.ts +1 -0
- package/dist/core/asset/asset-manager.d.ts +288 -0
- package/dist/core/asset/index.d.ts +3 -0
- package/dist/core/command/command-service.d.ts +315 -0
- package/dist/core/command/commands/composite-command.d.ts +45 -0
- package/dist/core/command/commands/frame-layout-command.d.ts +81 -0
- package/dist/core/command/commands/frame-layout-mode-command.d.ts +55 -0
- package/dist/core/command/commands/frame-move-in-command.d.ts +54 -0
- package/dist/core/command/commands/frame-move-out-command.d.ts +54 -0
- package/dist/core/command/commands/group-children-detach-command.d.ts +28 -0
- package/dist/core/command/commands/index.d.ts +98 -0
- package/dist/core/command/commands/item-align-command.d.ts +52 -0
- package/dist/core/command/commands/item-create-command.d.ts +66 -0
- package/dist/core/command/commands/item-delete-command.d.ts +40 -0
- package/dist/core/command/commands/item-distribute-command.d.ts +53 -0
- package/dist/core/command/commands/item-group-command.d.ts +41 -0
- package/dist/core/command/commands/item-reorder-command.d.ts +41 -0
- package/dist/core/command/commands/item-replace-source-command.d.ts +48 -0
- package/dist/core/command/commands/item-set-font-family-command.d.ts +46 -0
- package/dist/core/command/commands/item-set-generator-resource-command.d.ts +40 -0
- package/dist/core/command/commands/item-transform-command.d.ts +51 -0
- package/dist/core/command/commands/item-ungroup-command.d.ts +34 -0
- package/dist/core/command/commands/item-update-property-by-create-info-command.d.ts +41 -0
- package/dist/core/command/commands/item-update-property-command.d.ts +82 -0
- package/dist/core/command/commands/mask-commit-command.d.ts +53 -0
- package/dist/core/command/commands/page-auto-layout-command.d.ts +53 -0
- package/dist/core/command/commands/picture-cut-commit-command.d.ts +43 -0
- package/dist/core/command/commands/picture-expand-commit-command.d.ts +35 -0
- package/dist/core/command/commands/scene-switch-command.d.ts +35 -0
- package/dist/core/command/commands/selection-set-command.d.ts +38 -0
- package/dist/core/command/commands/sprite-image-command.d.ts +36 -0
- package/dist/core/command/commands/sprite-text-edit-commit-command.d.ts +43 -0
- package/dist/core/command/commands/state-hand-command.d.ts +14 -0
- package/dist/core/command/commands/state-image-cut-command.d.ts +14 -0
- package/dist/core/command/commands/state-image-expand-command.d.ts +14 -0
- package/dist/core/command/commands/state-image-mask-command.d.ts +15 -0
- package/dist/core/command/commands/state-image-text-edit-command.d.ts +14 -0
- package/dist/core/command/commands/state-item-create-command.d.ts +34 -0
- package/dist/core/command/commands/state-move-command.d.ts +14 -0
- package/dist/core/command/commands/state-switch-command-base.d.ts +41 -0
- package/dist/core/command/commands/text-move-command.d.ts +47 -0
- package/dist/core/command/commands/text-rotate-command.d.ts +52 -0
- package/dist/core/command/commands/text-scale-command.d.ts +56 -0
- package/dist/core/command/commands/text-update-content-command.d.ts +51 -0
- package/dist/core/command/commands/transform-move-command.d.ts +56 -0
- package/dist/core/command/commands/transform-move-with-frame-change-command.d.ts +80 -0
- package/dist/core/command/commands/transform-move-with-layout-command.d.ts +56 -0
- package/dist/core/command/commands/transform-rotate-command.d.ts +51 -0
- package/dist/core/command/commands/transform-scale-command.d.ts +54 -0
- package/dist/core/command/commands/video-play-command.d.ts +28 -0
- package/dist/core/command/commands/video-source-command.d.ts +39 -0
- package/dist/core/command/commands/viewport-fit-to-box-command.d.ts +37 -0
- package/dist/core/command/commands/viewport-fit-to-items-command.d.ts +43 -0
- package/dist/core/command/commands/viewport-move-command.d.ts +34 -0
- package/dist/core/command/commands/viewport-zoom-command.d.ts +35 -0
- package/dist/core/command/index.d.ts +5 -0
- package/dist/core/command/registry.d.ts +246 -0
- package/dist/core/command/types.d.ts +124 -0
- package/dist/core/element-registry/element-facade.d.ts +35 -0
- package/dist/core/element-registry/element-identity-strategy.d.ts +75 -0
- package/dist/core/element-registry/element-registry.d.ts +72 -0
- package/dist/core/element-registry/index.d.ts +5 -0
- package/dist/core/element-registry/types.d.ts +15 -0
- package/dist/core/gizmo/gizmo-bootstrap.d.ts +70 -0
- package/dist/core/gizmo/gizmo-command-binder.d.ts +55 -0
- package/dist/core/gizmo/gizmo-config-override.d.ts +24 -0
- package/dist/core/gizmo/gizmo-registry.d.ts +39 -0
- package/dist/core/gizmo/index.d.ts +19 -0
- package/dist/core/gizmo/register-gizmo-command-bindings.d.ts +20 -0
- package/dist/core/gizmo/state-gizmo-controller.d.ts +20 -0
- package/dist/core/history/history-manager.d.ts +174 -0
- package/dist/core/history/index.d.ts +1 -0
- package/dist/core/index.d.ts +25 -0
- package/dist/core/item/base-item.d.ts +154 -0
- package/dist/core/item/card-item.d.ts +91 -0
- package/dist/core/item/default-item-schema.d.ts +20 -0
- package/dist/core/item/effects-item.d.ts +99 -0
- package/dist/core/item/frame-item.d.ts +153 -0
- package/dist/core/item/generator-item.d.ts +114 -0
- package/dist/core/item/group-item.d.ts +51 -0
- package/dist/core/item/index.d.ts +25 -0
- package/dist/core/item/sprite-item.d.ts +80 -0
- package/dist/core/item/text-item.d.ts +171 -0
- package/dist/core/item/types.d.ts +158 -0
- package/dist/core/item/video-item.d.ts +120 -0
- package/dist/core/keybinding/index.d.ts +11 -0
- package/dist/core/keybinding/key-binding-controller.d.ts +44 -0
- package/dist/core/keybinding/key-binding-registry.d.ts +92 -0
- package/dist/core/keybinding/key-binding-store.d.ts +29 -0
- package/dist/core/keybinding/key-matcher.d.ts +24 -0
- package/dist/core/keybinding/types.d.ts +84 -0
- package/dist/core/plugin/index.d.ts +3 -0
- package/dist/core/plugin/io-plugin.d.ts +167 -0
- package/dist/core/plugin/plugin-system.d.ts +77 -0
- package/dist/core/predict/align-predict.d.ts +20 -0
- package/dist/core/predict/base/box-ops.d.ts +40 -0
- package/dist/core/predict/base/index.d.ts +14 -0
- package/dist/core/predict/base/parent-coord.d.ts +29 -0
- package/dist/core/predict/base/schema-box.d.ts +21 -0
- package/dist/core/predict/distribute-predict.d.ts +19 -0
- package/dist/core/predict/frame-layout-predict.d.ts +24 -0
- package/dist/core/predict/index.d.ts +12 -0
- package/dist/core/preferences/index.d.ts +2 -0
- package/dist/core/preferences/user-preferences-manager.d.ts +130 -0
- package/dist/core/quality/error-monitor/error-monitor-facade.d.ts +73 -0
- package/dist/core/quality/error-monitor/error-monitor.d.ts +106 -0
- package/dist/core/quality/error-monitor/index.d.ts +4 -0
- package/dist/core/quality/error-monitor/types.d.ts +198 -0
- package/dist/core/quality/index.d.ts +3 -0
- package/dist/core/quality/perf-monitor/index.d.ts +5 -0
- package/dist/core/quality/perf-monitor/perf-monitor-facade.d.ts +45 -0
- package/dist/core/quality/perf-monitor/perf-monitor.d.ts +60 -0
- package/dist/core/quality/perf-monitor/types.d.ts +66 -0
- package/dist/core/quality/stability-monitor/index.d.ts +5 -0
- package/dist/core/quality/stability-monitor/stability-monitor-facade.d.ts +50 -0
- package/dist/core/quality/stability-monitor/stability-monitor.d.ts +61 -0
- package/dist/core/quality/stability-monitor/types.d.ts +69 -0
- package/dist/core/renderer/background-controller.d.ts +56 -0
- package/dist/core/renderer/index.d.ts +5 -0
- package/dist/core/renderer/player-adapter.d.ts +129 -0
- package/dist/core/renderer/renderer.d.ts +134 -0
- package/dist/core/service/frame-service.d.ts +116 -0
- package/dist/core/service/index.d.ts +9 -0
- package/dist/core/service/interaction-providers.d.ts +20 -0
- package/dist/core/service/interaction-service.d.ts +211 -0
- package/dist/core/service/item-asset-service.d.ts +120 -0
- package/dist/core/service/item-creator-service.d.ts +211 -0
- package/dist/core/service/item-service.d.ts +641 -0
- package/dist/core/service/item-sync-service.d.ts +66 -0
- package/dist/core/service/json-scene-sync-service.d.ts +140 -0
- package/dist/core/service/refresh-animation-base-service.d.ts +1 -0
- package/dist/core/service/scene-data-assembler.d.ts +166 -0
- package/dist/core/service/view-service.d.ts +202 -0
- package/dist/core/state/base-state.d.ts +28 -0
- package/dist/core/state/index.d.ts +6 -0
- package/dist/core/state/presets.d.ts +25 -0
- package/dist/core/state/state-manager.d.ts +50 -0
- package/dist/core/state/types.d.ts +52 -0
- package/dist/core/store/index.d.ts +3 -0
- package/dist/core/store/scene-store.d.ts +194 -0
- package/dist/core/store/store.d.ts +36 -0
- package/dist/core/types/artis-config.d.ts +186 -0
- package/dist/core/types/artis-events.d.ts +101 -0
- package/dist/core/types/frame.d.ts +3 -0
- package/dist/core/types/generator.d.ts +28 -0
- package/dist/core/types/index.d.ts +15 -0
- package/dist/core/types/item-create-info.d.ts +205 -0
- package/dist/core/types/item-property.d.ts +149 -0
- package/dist/core/types/item-reorder.d.ts +12 -0
- package/dist/core/types/item-schema.d.ts +263 -0
- package/dist/core/types/item-set-property.d.ts +48 -0
- package/dist/core/types/page.d.ts +40 -0
- package/dist/core/types/sdk.d.ts +28 -0
- package/dist/core/types/view.d.ts +39 -0
- package/dist/helper/exporter/config.d.ts +18 -0
- package/dist/helper/exporter/const.d.ts +71 -0
- package/dist/helper/exporter/export-media.d.ts +189 -0
- package/dist/helper/exporter/exporter.d.ts +58 -0
- package/dist/helper/exporter/index.d.ts +2 -0
- package/dist/helper/exporter/types.d.ts +194 -0
- package/dist/helper/exporter/utils.d.ts +71 -0
- package/dist/helper/exporter/wav-audio.d.ts +35 -0
- package/dist/helper/html-overlay/anchor-navigation-runtime.d.ts +1 -0
- package/dist/helper/html-overlay/auto-height-layout.d.ts +16 -0
- package/dist/helper/html-overlay/auto-height-runtime.d.ts +40 -0
- package/dist/helper/html-overlay/document-runtime.d.ts +18 -0
- package/dist/helper/html-overlay/document-transform.d.ts +46 -0
- package/dist/helper/html-overlay/dom-order.d.ts +5 -0
- package/dist/helper/html-overlay/host-message-runtime.d.ts +15 -0
- package/dist/helper/html-overlay/html-capture-runtime.d.ts +12 -0
- package/dist/helper/html-overlay/html-card-service.d.ts +287 -0
- package/dist/helper/html-overlay/html-viewport-style.d.ts +6 -0
- package/dist/helper/html-overlay/index.d.ts +1 -0
- package/dist/helper/html-overlay/inline-script-json.d.ts +1 -0
- package/dist/helper/html-overlay/mime-utils.d.ts +13 -0
- package/dist/helper/html-overlay/overlay-transform.d.ts +30 -0
- package/dist/helper/html-overlay/path-utils.d.ts +34 -0
- package/dist/helper/html-overlay/runtime-context.d.ts +2 -0
- package/dist/helper/html-overlay/shell-runtime.d.ts +13 -0
- package/dist/helper/index.d.ts +5 -0
- package/dist/helper/scene-builder.d.ts +111 -0
- package/dist/helper/screen-shot.d.ts +51 -0
- package/dist/helper/size-adapt.d.ts +88 -0
- package/dist/index.cjs +69350 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.mjs +68963 -0
- package/dist/index.mjs.map +1 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/player.d.ts +9 -0
- package/dist/utils/background-manager.d.ts +76 -0
- package/dist/utils/common-utils.d.ts +39 -0
- package/dist/utils/container-size.d.ts +7 -0
- package/dist/utils/find-player-item.d.ts +9 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/json-data-utils.d.ts +198 -0
- package/dist/utils/layout-utils.d.ts +144 -0
- package/dist/utils/pixel-box-utils.d.ts +26 -0
- package/dist/utils/player-data-utils.d.ts +9 -0
- package/dist/utils/player-utils.d.ts +42 -0
- package/dist/utils/replay-utils.d.ts +22 -0
- package/dist/utils/types.d.ts +130 -0
- package/package.json +66 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ItemSchema } from './item-schema';
|
|
2
|
+
import type { ArtisItem } from '../item';
|
|
3
|
+
import type { GlobalLayoutMode } from '../../utils';
|
|
4
|
+
import type { ViewportFitShiftParam } from './view';
|
|
5
|
+
export type PageOptions = {
|
|
6
|
+
asyncMode: boolean;
|
|
7
|
+
safeAreaPreview: boolean;
|
|
8
|
+
adsorption: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type ArtisData = {
|
|
11
|
+
items: ArtisItem[];
|
|
12
|
+
};
|
|
13
|
+
export type InitArtisData = {
|
|
14
|
+
items: ItemSchema[];
|
|
15
|
+
};
|
|
16
|
+
export type PageAutoLayoutParam = {
|
|
17
|
+
mode?: GlobalLayoutMode;
|
|
18
|
+
ids?: string[];
|
|
19
|
+
focus?: boolean;
|
|
20
|
+
gap?: number;
|
|
21
|
+
padding?: ViewportFitShiftParam;
|
|
22
|
+
};
|
|
23
|
+
export type ArtisPageConfig = {
|
|
24
|
+
safeAreaPreview: boolean;
|
|
25
|
+
zoom: number;
|
|
26
|
+
adsorption: boolean;
|
|
27
|
+
asyncMode: boolean;
|
|
28
|
+
translation: [number, number];
|
|
29
|
+
};
|
|
30
|
+
export type PageProperty = {
|
|
31
|
+
safeAreaPreview: boolean;
|
|
32
|
+
zoom: number;
|
|
33
|
+
translation: [number, number];
|
|
34
|
+
adsorption: boolean;
|
|
35
|
+
asyncMode: boolean;
|
|
36
|
+
};
|
|
37
|
+
export type ActiveData = {
|
|
38
|
+
selectedItems: string[];
|
|
39
|
+
loadingItems: string[];
|
|
40
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { spec } from '../../shared';
|
|
2
|
+
import type { ViewParam } from './view';
|
|
3
|
+
import type { PageOptions } from './page';
|
|
4
|
+
export declare enum SDKBackgroundType {
|
|
5
|
+
COLOR = "color",
|
|
6
|
+
IMAGE = "image",
|
|
7
|
+
CHESS_BOARD = "chess-board",
|
|
8
|
+
DOT_BOARD = "dot-board"
|
|
9
|
+
}
|
|
10
|
+
export type SDKOptions = {
|
|
11
|
+
/** 导出视频时,是否开启转码日志 */
|
|
12
|
+
loggerInExportVideoTranscoding?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export type SDKTemplateInputParam = {
|
|
15
|
+
scene: string | spec.JSONScene;
|
|
16
|
+
mode: 'template';
|
|
17
|
+
viewParams?: ViewParam[];
|
|
18
|
+
options: PageOptions;
|
|
19
|
+
};
|
|
20
|
+
export type SDKEditorInputParam = {
|
|
21
|
+
mode: 'editor';
|
|
22
|
+
};
|
|
23
|
+
export type SDKInputParam = SDKTemplateInputParam | SDKEditorInputParam;
|
|
24
|
+
export type SDKInitParam = {
|
|
25
|
+
scene: spec.JSONScene;
|
|
26
|
+
viewParams: ViewParam[];
|
|
27
|
+
options: PageOptions;
|
|
28
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { SizeAdaptDirection, ExportMediaItemOptions } from '../../helper';
|
|
2
|
+
/** 聚焦偏移参数 */
|
|
3
|
+
export type ViewportFitShiftParam = {
|
|
4
|
+
/** 左偏移 */
|
|
5
|
+
left?: number;
|
|
6
|
+
/** 右偏移 */
|
|
7
|
+
right?: number;
|
|
8
|
+
/** 上偏移 */
|
|
9
|
+
top?: number;
|
|
10
|
+
/** 下偏移 */
|
|
11
|
+
bottom?: number;
|
|
12
|
+
/** 包围盒整体缩放 */
|
|
13
|
+
scale?: number;
|
|
14
|
+
};
|
|
15
|
+
export type ExportParam = {
|
|
16
|
+
name?: string;
|
|
17
|
+
} & Omit<ExportMediaItemOptions, 'scene' | 'size'>;
|
|
18
|
+
export type PreviewSafeAreaParam = {
|
|
19
|
+
box: [number, number, number, number];
|
|
20
|
+
color?: [number, number, number, number];
|
|
21
|
+
url?: string;
|
|
22
|
+
visible?: boolean;
|
|
23
|
+
};
|
|
24
|
+
export type ViewParam = {
|
|
25
|
+
size?: [number, number];
|
|
26
|
+
safeArea?: [number, number, number, number];
|
|
27
|
+
adaptionDirection?: SizeAdaptDirection;
|
|
28
|
+
previewSafeAreas?: PreviewSafeAreaParam[];
|
|
29
|
+
export: ExportParam;
|
|
30
|
+
};
|
|
31
|
+
export type ViewProperty = {
|
|
32
|
+
id: number;
|
|
33
|
+
size: [number, number];
|
|
34
|
+
safeArea: [number, number, number, number];
|
|
35
|
+
previewSafeAreas: PreviewSafeAreaParam[];
|
|
36
|
+
scene: unknown;
|
|
37
|
+
export: ExportParam;
|
|
38
|
+
ignoreInteraction: boolean;
|
|
39
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const HELPER_CONFIG: {
|
|
2
|
+
WEBP: {
|
|
3
|
+
SCRIPT: string;
|
|
4
|
+
WASM: string;
|
|
5
|
+
};
|
|
6
|
+
FFMPEG: {
|
|
7
|
+
CLASSWORKER: string;
|
|
8
|
+
DEFAULT: {
|
|
9
|
+
CORE: string;
|
|
10
|
+
WASM: string;
|
|
11
|
+
};
|
|
12
|
+
MT: {
|
|
13
|
+
CORE: string;
|
|
14
|
+
WASM: string;
|
|
15
|
+
WORKER: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export declare const STATUS_MAP: {
|
|
2
|
+
readonly READY: "ready";
|
|
3
|
+
readonly EXECUTABLE: "executable";
|
|
4
|
+
readonly DISPOSE: "dispose";
|
|
5
|
+
};
|
|
6
|
+
export declare const MEDIA_TYPE: {
|
|
7
|
+
readonly APNG: "APNG";
|
|
8
|
+
readonly MP4: "MP4";
|
|
9
|
+
readonly WebM: "WebM";
|
|
10
|
+
readonly Images: "Images";
|
|
11
|
+
readonly WebP: "WebP";
|
|
12
|
+
readonly GIF: "GIF";
|
|
13
|
+
readonly AlphaMaskVideo: "AlphaMaskVideo";
|
|
14
|
+
};
|
|
15
|
+
export declare const STAGE_MAP: {
|
|
16
|
+
readonly IDLE: "idle";
|
|
17
|
+
readonly CONVERT_IMAGE: "convertImage";
|
|
18
|
+
readonly TRANSCODING: "transcoding";
|
|
19
|
+
readonly AUDIO: "audio";
|
|
20
|
+
};
|
|
21
|
+
export declare const EXPORT_NEED_TRANS_IMAGES_MAP: {
|
|
22
|
+
JPEG: string;
|
|
23
|
+
WEBP: string;
|
|
24
|
+
PNG: string;
|
|
25
|
+
};
|
|
26
|
+
export declare const FORMAT_BUFFER_DOWNLOAD_SUFFIX: {
|
|
27
|
+
MP4: string;
|
|
28
|
+
WebP: string;
|
|
29
|
+
APNG: string;
|
|
30
|
+
GIF: string;
|
|
31
|
+
AlphaMaskVideo: string;
|
|
32
|
+
Images: string;
|
|
33
|
+
};
|
|
34
|
+
export declare const FORMAT_BUFFER_DOWNLOAD_MIMETYPE: {
|
|
35
|
+
MP4: string;
|
|
36
|
+
WebP: string;
|
|
37
|
+
APNG: string;
|
|
38
|
+
GIF: string;
|
|
39
|
+
AlphaMaskVideo: string;
|
|
40
|
+
Images: string;
|
|
41
|
+
};
|
|
42
|
+
export declare const EXPORT_STATUS_MAP: {
|
|
43
|
+
DEFAULT: string;
|
|
44
|
+
EXPORTING: string;
|
|
45
|
+
SUCCESS: string;
|
|
46
|
+
ERROR: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* GIF 压缩参数
|
|
50
|
+
* 核心通过参数 flags + palettegen + paletteuse 实现
|
|
51
|
+
* highest: lanczos + max_colors=256 + dither=bayer
|
|
52
|
+
* high: bicubic + max_colors=200 + dither=bayer
|
|
53
|
+
* medium: bilinear + max_colors=64 + dither=bayer
|
|
54
|
+
* low: neighbor + max_colors=32 + dither=none
|
|
55
|
+
*/
|
|
56
|
+
export declare const GIF_QUALITY_TO_FFMPEG_ARGS: {
|
|
57
|
+
highest: string;
|
|
58
|
+
high: string;
|
|
59
|
+
medium: string;
|
|
60
|
+
low: string;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* APNG 压缩参数
|
|
64
|
+
* 核心通过参数 compression_level 实现,压缩等级分为 1/3/6/9
|
|
65
|
+
*/
|
|
66
|
+
export declare const APNG_QUALITY_TO_FFMPEG_ARGS: {
|
|
67
|
+
highest: string;
|
|
68
|
+
high: string;
|
|
69
|
+
medium: string;
|
|
70
|
+
low: string;
|
|
71
|
+
};
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { EventEmitter } from '../../shared';
|
|
2
|
+
import type { MediaType, ExportMediaInitOptions, ExportItemParams, ExportParams, Buffer, Extra, Buffers, Extras } from './types';
|
|
3
|
+
export type ExportMediaEvent = {
|
|
4
|
+
/**
|
|
5
|
+
* 环境准备完成
|
|
6
|
+
*/
|
|
7
|
+
ready: [mediaType: MediaType];
|
|
8
|
+
/**
|
|
9
|
+
* 总体进度
|
|
10
|
+
*/
|
|
11
|
+
progress: [progress: number];
|
|
12
|
+
/**
|
|
13
|
+
* 单个任务完成
|
|
14
|
+
*/
|
|
15
|
+
done: [item: ExportItemParams | undefined, success: boolean, buffer: Buffer, extra: Extra];
|
|
16
|
+
/**
|
|
17
|
+
* 全部任务完成
|
|
18
|
+
*/
|
|
19
|
+
finish: [success: boolean, taskInfos: ExportParams, buffers: Buffers, extras: Extras];
|
|
20
|
+
/**
|
|
21
|
+
* 异常
|
|
22
|
+
*/
|
|
23
|
+
error: [error: any];
|
|
24
|
+
};
|
|
25
|
+
export declare class ExportMedia extends EventEmitter<ExportMediaEvent> {
|
|
26
|
+
#private;
|
|
27
|
+
private status;
|
|
28
|
+
private stage;
|
|
29
|
+
private player?;
|
|
30
|
+
/**
|
|
31
|
+
* 构造导出器实例,合并默认选项并触发初始化
|
|
32
|
+
* @param options 导出初始化配置
|
|
33
|
+
*/
|
|
34
|
+
constructor(options: ExportMediaInitOptions);
|
|
35
|
+
/**
|
|
36
|
+
* 切换导出媒体类型,类型变化时重置实例并重新初始化
|
|
37
|
+
* @param curMediaType 目标媒体类型
|
|
38
|
+
*/
|
|
39
|
+
setMediaType(curMediaType: MediaType): void;
|
|
40
|
+
/**
|
|
41
|
+
* 合并更新导出选项,媒体类型变化时联动切换
|
|
42
|
+
* @param options 待合并的选项片段
|
|
43
|
+
*/
|
|
44
|
+
setOptions(options: Partial<ExportMediaInitOptions>): void;
|
|
45
|
+
/** 当前是否已处于销毁(取消)态 */
|
|
46
|
+
get canceled(): boolean;
|
|
47
|
+
/** 基于当前任务与播放器合成信息组装出导出所需的运行配置 */
|
|
48
|
+
private get config();
|
|
49
|
+
/** 当前任务的 MP4 导出参数 */
|
|
50
|
+
private get mp4Config();
|
|
51
|
+
/** 当前任务的 GIF 导出参数 */
|
|
52
|
+
private get gifConfig();
|
|
53
|
+
/** 当前任务的 APNG 导出参数 */
|
|
54
|
+
private get apngConfig();
|
|
55
|
+
/** 按转帧与转码两段权重计算得到的总体进度(0-1) */
|
|
56
|
+
private get progress();
|
|
57
|
+
/** 根据当前媒体类型推导序列帧应使用的图片格式 */
|
|
58
|
+
private get transImageType();
|
|
59
|
+
/**
|
|
60
|
+
* 初始化导出环境,按媒体类型加载所需 helper 并抛出 ready 事件
|
|
61
|
+
* @returns 初始化后的状态
|
|
62
|
+
*/
|
|
63
|
+
private onInit;
|
|
64
|
+
/** 重置运行态:清理定时器、动画帧、播放器与任务进度 */
|
|
65
|
+
private onReset;
|
|
66
|
+
/**
|
|
67
|
+
* 统一处理导出异常:结束流程并触发 error 事件后销毁实例
|
|
68
|
+
* @param error 抛出的异常对象
|
|
69
|
+
*/
|
|
70
|
+
private onError;
|
|
71
|
+
/**
|
|
72
|
+
* 收尾流程:补满进度并对外抛出 finish 事件
|
|
73
|
+
* @param success 本次导出是否全部成功
|
|
74
|
+
* @param taskInfos 任务信息集合
|
|
75
|
+
* @param buffers 输出文件缓冲集合
|
|
76
|
+
* @param extras 额外输出文件缓冲集合
|
|
77
|
+
*/
|
|
78
|
+
private onFinish;
|
|
79
|
+
/**
|
|
80
|
+
* 按媒体类型按需加载 WebP / FFmpeg helper,并为 ffmpeg 注册日志监听以更新转码帧进度
|
|
81
|
+
* @param mediaType 当前媒体类型
|
|
82
|
+
*/
|
|
83
|
+
private loadHelper;
|
|
84
|
+
/**
|
|
85
|
+
* 累加所有任务的总帧数,用于全局进度计算
|
|
86
|
+
* @param options 全部导出任务配置
|
|
87
|
+
* @returns 所有任务总帧数
|
|
88
|
+
*/
|
|
89
|
+
private getAllTaskFrames;
|
|
90
|
+
/**
|
|
91
|
+
* 更新进度相关内部字段并对外抛出 progress 事件
|
|
92
|
+
* @param options 需要更新的进度子字段
|
|
93
|
+
*/
|
|
94
|
+
private setProgress;
|
|
95
|
+
/**
|
|
96
|
+
* 将播放器时间跳转到指定秒数,规避末帧回卷边界问题
|
|
97
|
+
* @param seconds 目标时间(秒)
|
|
98
|
+
* @param playing 是否以播放方式跳转
|
|
99
|
+
* @returns 实际生效的时间(秒)
|
|
100
|
+
*/
|
|
101
|
+
private forwardPlayerTime;
|
|
102
|
+
/**
|
|
103
|
+
* 生成静音 wav 音轨并写入 ffmpeg 虚拟文件系统
|
|
104
|
+
* @param name 写入 ffmpeg 的文件名
|
|
105
|
+
*/
|
|
106
|
+
private getWavAudio;
|
|
107
|
+
/**
|
|
108
|
+
* 将序列帧缓冲打包成zip并返回整体 ArrayBuffer
|
|
109
|
+
* @param folderName zip 内目录名
|
|
110
|
+
* @param imageBuffers 各帧图片缓冲
|
|
111
|
+
* @returns 打包后的 ArrayBuffer
|
|
112
|
+
*/
|
|
113
|
+
private getImagesZip;
|
|
114
|
+
/**
|
|
115
|
+
* 调用 img2webp 将序列帧合成为 WebP 动图,处理后清理中间文件
|
|
116
|
+
* @returns 合成后的 WebP 文件字节
|
|
117
|
+
*/
|
|
118
|
+
private getWebP;
|
|
119
|
+
/**
|
|
120
|
+
* 通过 ffmpeg 将序列帧合成为 APNG,失败抛出异常
|
|
121
|
+
* @returns 生成的 APNG 文件名
|
|
122
|
+
*/
|
|
123
|
+
private getAPNG;
|
|
124
|
+
/**
|
|
125
|
+
* 通过 ffmpeg 将序列帧合成为 GIF,失败抛出异常
|
|
126
|
+
* @returns 生成的 GIF 文件名
|
|
127
|
+
*/
|
|
128
|
+
private getGIF;
|
|
129
|
+
/**
|
|
130
|
+
* 通过 ffmpeg 合成 MP4,按需混入音频并可选输出末帧 JPEG,返回产物文件名
|
|
131
|
+
* @param oldTotalTime 原始总时长
|
|
132
|
+
* @param newTotalTime 目标总时长,用于变速
|
|
133
|
+
* @returns 视频文件名与可选末帧文件名
|
|
134
|
+
*/
|
|
135
|
+
private getMP4;
|
|
136
|
+
/**
|
|
137
|
+
* 通过 ffmpeg 合成 AlphaMask 透明视频
|
|
138
|
+
* @param oldTotalTime 原始总时长
|
|
139
|
+
* @param newTotalTime 目标总时长,用于变速
|
|
140
|
+
* @returns 生成的视频文件名
|
|
141
|
+
*/
|
|
142
|
+
private getAlphaMaskVideo;
|
|
143
|
+
/**
|
|
144
|
+
* 按当前媒体类型分派到具体合成方法,并读取/清理 ffmpeg 内的产物文件
|
|
145
|
+
* @param oldTotalTime 原始总时长
|
|
146
|
+
* @param newTotalTime 目标总时长
|
|
147
|
+
* @returns 主产物与额外产物的字节内容
|
|
148
|
+
*/
|
|
149
|
+
private getVideoByType;
|
|
150
|
+
/**
|
|
151
|
+
* 启动 MediaRecorder 录制 canvas 流为 WebM 分片
|
|
152
|
+
* @param canvas 被录制的画布
|
|
153
|
+
*/
|
|
154
|
+
private onRecordWebM;
|
|
155
|
+
/**
|
|
156
|
+
* 逐帧推进播放器并将序列帧写入对应产物通道(ffmpeg/webp/images),完成后抛出 done
|
|
157
|
+
* @param options 单帧导出参数
|
|
158
|
+
*/
|
|
159
|
+
private onExportImageFrame;
|
|
160
|
+
/**
|
|
161
|
+
* 通过画布流录制方式逐帧采集 WebM,录制完成后抛出 done
|
|
162
|
+
* @param canvas 输出画布
|
|
163
|
+
*/
|
|
164
|
+
private onExportWebMFrame;
|
|
165
|
+
/**
|
|
166
|
+
* 执行单个导出任务:配置画布尺寸并按媒体类型分派到帧导出流程
|
|
167
|
+
* @param options 单任务执行参数
|
|
168
|
+
*/
|
|
169
|
+
private runTask;
|
|
170
|
+
/** 清空任务相关的全部进度与缓存字段 */
|
|
171
|
+
private clearTaskInfo;
|
|
172
|
+
/** 清理 ffmpeg 实例及其内部残留文件并终止 worker */
|
|
173
|
+
private clearFFMpegCore;
|
|
174
|
+
/** 关闭并释放 img2webp 内核实例 */
|
|
175
|
+
private clearImage2WebPCore;
|
|
176
|
+
/** 停止 MediaRecorder 并清空已录制分片 */
|
|
177
|
+
private clearMediaRecorder;
|
|
178
|
+
/** 移除当前实例对外抛出的全部事件监听 */
|
|
179
|
+
private clearAllListeners;
|
|
180
|
+
/** 取消导出:触发失败收尾、重置状态并释放全部资源 */
|
|
181
|
+
onCancel(): void;
|
|
182
|
+
/**
|
|
183
|
+
* 串行执行所有导出任务,逐任务加载场景并收集产物,最终触发 finish
|
|
184
|
+
* @param options 全部导出任务配置
|
|
185
|
+
*/
|
|
186
|
+
onExport(options: ExportParams): Promise<void>;
|
|
187
|
+
/** 销毁实例:释放播放器、helper 与监听等全部资源 */
|
|
188
|
+
dispose(): void;
|
|
189
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ExportMediaInitOptions, ExportItemParams, ExportParams, ExportMediaItemDownloadInfo, FileBuffer, Buffers, Extras } from './types';
|
|
2
|
+
import { EventEmitter } from '../../shared';
|
|
3
|
+
export type ExporterEvent = {
|
|
4
|
+
'progress': [progress: number];
|
|
5
|
+
'done': [item: ExportItemParams | undefined, success: boolean, buffer?: FileBuffer, extra?: FileBuffer | null];
|
|
6
|
+
'complete': [success: boolean, taskInfos: ExportParams, buffers: Buffers, extras: Extras];
|
|
7
|
+
};
|
|
8
|
+
export declare class Exporter extends EventEmitter<ExporterEvent> {
|
|
9
|
+
private _options;
|
|
10
|
+
private _status;
|
|
11
|
+
private _exportMedia;
|
|
12
|
+
/**
|
|
13
|
+
* 构造导出器,保存选项并创建内部媒体导出实例
|
|
14
|
+
* @param options 导出初始化配置
|
|
15
|
+
*/
|
|
16
|
+
constructor(options: ExportMediaInitOptions);
|
|
17
|
+
/** 当前导出状态 */
|
|
18
|
+
get status(): string;
|
|
19
|
+
/**
|
|
20
|
+
* 合并更新导出选项并同步给内部媒体导出实例
|
|
21
|
+
* @param options 待合并的选项片段
|
|
22
|
+
*/
|
|
23
|
+
setOptions(options: Partial<ExportMediaInitOptions>): void;
|
|
24
|
+
/**
|
|
25
|
+
* 将导出产物按文件名打包成 zip 并触发浏览器下载
|
|
26
|
+
* @param params 各任务的下载命名信息
|
|
27
|
+
* @param buffers 主产物缓冲集合
|
|
28
|
+
* @param extras 额外产物缓冲集合
|
|
29
|
+
*/
|
|
30
|
+
downloadByMediaBuffers(params: ExportMediaItemDownloadInfo[], buffers: Buffers, extras: Extras): void;
|
|
31
|
+
/**
|
|
32
|
+
* 转发媒体导出进度事件
|
|
33
|
+
* @param progress 当前进度(0-1)
|
|
34
|
+
*/
|
|
35
|
+
private onExportProgress;
|
|
36
|
+
/**
|
|
37
|
+
* 转发单任务完成事件
|
|
38
|
+
* @param current 当前任务信息
|
|
39
|
+
* @param success 是否成功
|
|
40
|
+
* @param buffer 产物缓冲
|
|
41
|
+
* @param extra 额外产物缓冲
|
|
42
|
+
*/
|
|
43
|
+
private onExportDone;
|
|
44
|
+
/**
|
|
45
|
+
* 处理导出异常:置错误态并记录日志
|
|
46
|
+
* @param error 异常对象
|
|
47
|
+
*/
|
|
48
|
+
private onExportError;
|
|
49
|
+
/**
|
|
50
|
+
* 启动导出流程:委托内部实例执行任务并桥接进度/完成/异常事件
|
|
51
|
+
* @param params 全部导出任务配置
|
|
52
|
+
*/
|
|
53
|
+
onExport(params: ExportParams): void;
|
|
54
|
+
/** 取消导出:置错误态并对外抛出失败完成事件 */
|
|
55
|
+
onCancel(): void;
|
|
56
|
+
/** 释放内部媒体导出实例资源 */
|
|
57
|
+
dispose(): void;
|
|
58
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { spec } from '../../shared';
|
|
2
|
+
import { STATUS_MAP, MEDIA_TYPE, STAGE_MAP, EXPORT_STATUS_MAP, GIF_QUALITY_TO_FFMPEG_ARGS } from './const';
|
|
3
|
+
declare global {
|
|
4
|
+
interface Window {
|
|
5
|
+
/**
|
|
6
|
+
* 创建 WebP Core 实例
|
|
7
|
+
*/
|
|
8
|
+
createWebPCore: (config: any) => Promise<Img2WebPCore>;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export type FileBuffer = ArrayBuffer | Uint8Array;
|
|
12
|
+
export type Status = typeof STATUS_MAP[keyof typeof STATUS_MAP];
|
|
13
|
+
export type MediaType = typeof MEDIA_TYPE[keyof typeof MEDIA_TYPE];
|
|
14
|
+
export type ExportImageFrameOptions = {
|
|
15
|
+
canvas: HTMLCanvasElement;
|
|
16
|
+
imageBuffers: ArrayBuffer[];
|
|
17
|
+
startTime: number;
|
|
18
|
+
oldTotalTime: number;
|
|
19
|
+
newTotalTime?: number;
|
|
20
|
+
backgroundCanvas?: HTMLCanvasElement;
|
|
21
|
+
};
|
|
22
|
+
export type RunExportTaskOptions = {
|
|
23
|
+
size: [number, number];
|
|
24
|
+
startTime: number;
|
|
25
|
+
containerCanvas: HTMLCanvasElement;
|
|
26
|
+
background?: {
|
|
27
|
+
backgroundCanvas?: HTMLCanvasElement;
|
|
28
|
+
backgroundImage?: HTMLImageElement;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export type FS = {
|
|
32
|
+
writeFile: (path: string, data: Uint8Array | string) => void;
|
|
33
|
+
unlink: (path: string) => void;
|
|
34
|
+
quit: () => void;
|
|
35
|
+
readFile(path: string, opts: {
|
|
36
|
+
encoding: 'binary';
|
|
37
|
+
flags?: string | undefined;
|
|
38
|
+
}): Uint8Array;
|
|
39
|
+
readFile(path: string, opts: {
|
|
40
|
+
encoding: 'utf8';
|
|
41
|
+
flags?: string | undefined;
|
|
42
|
+
}): string;
|
|
43
|
+
readFile(path: string, opts?: {
|
|
44
|
+
flags?: string | undefined;
|
|
45
|
+
}): Uint8Array;
|
|
46
|
+
};
|
|
47
|
+
type Pointer = number;
|
|
48
|
+
export type Img2WebPCore = {
|
|
49
|
+
FS: FS;
|
|
50
|
+
run: (...args: string[]) => number;
|
|
51
|
+
cwrap: (ident: string, returnType: string, argTypes: string[]) => ((argc: number, argv: Pointer) => number);
|
|
52
|
+
_malloc: (size: number) => Pointer;
|
|
53
|
+
writeAsciiToMemory: (str: string, buffer: number, dontAddNull?: boolean) => void;
|
|
54
|
+
setValue: (ptr: number, value: any, type: string, noSafe?: boolean) => void;
|
|
55
|
+
};
|
|
56
|
+
export type Config = {
|
|
57
|
+
name: string;
|
|
58
|
+
oldTotalTime: number;
|
|
59
|
+
newTotalTime?: number;
|
|
60
|
+
startTime: number;
|
|
61
|
+
fps: number;
|
|
62
|
+
backgroundColor: string;
|
|
63
|
+
loop: boolean;
|
|
64
|
+
audioEnable: boolean;
|
|
65
|
+
};
|
|
66
|
+
export type Stage = typeof STAGE_MAP[keyof typeof STAGE_MAP];
|
|
67
|
+
export type ExportStatus = typeof EXPORT_STATUS_MAP[keyof typeof EXPORT_STATUS_MAP];
|
|
68
|
+
export type ExportMediaInitOptions = {
|
|
69
|
+
/**
|
|
70
|
+
* 导出类型
|
|
71
|
+
*/
|
|
72
|
+
mediaType: MediaType;
|
|
73
|
+
/**
|
|
74
|
+
* 额外画布,导出透明视频时使用
|
|
75
|
+
*/
|
|
76
|
+
extraCanvas?: HTMLCanvasElement | null;
|
|
77
|
+
/**
|
|
78
|
+
* 是否打印转码过程中的日志,仅在导出 MP4/AlphaMaskVideo 时有效, 默认 false
|
|
79
|
+
* 供开发调试使用
|
|
80
|
+
*/
|
|
81
|
+
loggerInTranscoding?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* ffmpeg 转码是否开启多线程,默认 false,确保环境支持 SharedArrayBuffer
|
|
84
|
+
*/
|
|
85
|
+
multiThreading?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* 是否输出 buffer,默认 false
|
|
88
|
+
*/
|
|
89
|
+
isOutputBuffer?: boolean;
|
|
90
|
+
};
|
|
91
|
+
export type MP4Config = {
|
|
92
|
+
/**
|
|
93
|
+
* MP4 导出时是否需要导出最后一帧 PNG
|
|
94
|
+
*/
|
|
95
|
+
isExportLastFrameJPEG?: boolean;
|
|
96
|
+
};
|
|
97
|
+
export type GifConfig = {
|
|
98
|
+
/**
|
|
99
|
+
* GIF 导出时的帧率
|
|
100
|
+
*/
|
|
101
|
+
fps?: number;
|
|
102
|
+
/**
|
|
103
|
+
* GIF 导出时的缩放比例
|
|
104
|
+
* 默认 '-1:-1', 表示不缩放
|
|
105
|
+
* 例如 '100:-1', 表示宽度 100,高度自动
|
|
106
|
+
* 例如 '-1:100', 表示宽度自动,高度 100
|
|
107
|
+
*/
|
|
108
|
+
scale?: string;
|
|
109
|
+
/**
|
|
110
|
+
* GIF 导出时的质量
|
|
111
|
+
* 默认 'highest'
|
|
112
|
+
* 可选 'highest', 'high', 'medium', 'low'
|
|
113
|
+
*/
|
|
114
|
+
quality?: keyof typeof GIF_QUALITY_TO_FFMPEG_ARGS;
|
|
115
|
+
};
|
|
116
|
+
export type ApngConfig = {
|
|
117
|
+
/**
|
|
118
|
+
* APNG 导出时的帧率
|
|
119
|
+
*/
|
|
120
|
+
fps?: number;
|
|
121
|
+
/**
|
|
122
|
+
* APNG 导出时的缩放比例
|
|
123
|
+
* 默认 '-1:-1', 表示不缩放
|
|
124
|
+
* 例如 '100:-1', 表示宽度 100,高度自动
|
|
125
|
+
* 例如 '-1:100', 表示宽度自动,高度 100
|
|
126
|
+
*/
|
|
127
|
+
scale?: string;
|
|
128
|
+
/**
|
|
129
|
+
* APNG 导出时的质量
|
|
130
|
+
* 默认 'highest'
|
|
131
|
+
* 可选 'highest', 'high', 'medium', 'low'
|
|
132
|
+
*/
|
|
133
|
+
quality?: keyof typeof GIF_QUALITY_TO_FFMPEG_ARGS;
|
|
134
|
+
};
|
|
135
|
+
export type ExportMediaItemOptions = {
|
|
136
|
+
/**
|
|
137
|
+
* 尺寸
|
|
138
|
+
*/
|
|
139
|
+
size: [number, number];
|
|
140
|
+
/**
|
|
141
|
+
* 动效资源
|
|
142
|
+
*/
|
|
143
|
+
scene: spec.JSONScene;
|
|
144
|
+
/**
|
|
145
|
+
* 视频时长,目前仅在导出 MP4 / AlphaMaskVideo 时有效,默认取动效资源时长
|
|
146
|
+
*/
|
|
147
|
+
time?: number;
|
|
148
|
+
/**
|
|
149
|
+
* 是否生成音轨,默认 false,仅在导出 MP4 时有效
|
|
150
|
+
*/
|
|
151
|
+
audioEnable?: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* 帧率, 默认 30
|
|
154
|
+
*/
|
|
155
|
+
fps?: number;
|
|
156
|
+
/**
|
|
157
|
+
* 是否循环,默认 true
|
|
158
|
+
*/
|
|
159
|
+
loop?: boolean;
|
|
160
|
+
/**
|
|
161
|
+
* 视频背景颜色,默认 #000000
|
|
162
|
+
*/
|
|
163
|
+
backgroundColor?: string;
|
|
164
|
+
/**
|
|
165
|
+
* 导出 MP4 时,设置的导出配置
|
|
166
|
+
*/
|
|
167
|
+
mp4Config?: MP4Config;
|
|
168
|
+
/**
|
|
169
|
+
* 导出 GIF 时,设置的导出配置
|
|
170
|
+
*/
|
|
171
|
+
gifConfig?: GifConfig;
|
|
172
|
+
/**
|
|
173
|
+
* 导出 APNG 时,设置的导出配置
|
|
174
|
+
*/
|
|
175
|
+
apngConfig?: ApngConfig;
|
|
176
|
+
};
|
|
177
|
+
export type ExportOptions = ExportMediaItemOptions[];
|
|
178
|
+
export type ExportMediaItemDownloadInfo = {
|
|
179
|
+
/**
|
|
180
|
+
* 导出文件夹名称
|
|
181
|
+
*/
|
|
182
|
+
folderName: string;
|
|
183
|
+
/**
|
|
184
|
+
* 导出视频名称
|
|
185
|
+
*/
|
|
186
|
+
name: string;
|
|
187
|
+
};
|
|
188
|
+
export type ExportItemParams = ExportMediaItemOptions & ExportMediaItemDownloadInfo;
|
|
189
|
+
export type ExportParams = ExportItemParams[];
|
|
190
|
+
export type Buffer = FileBuffer | undefined;
|
|
191
|
+
export type Extra = FileBuffer | null | undefined;
|
|
192
|
+
export type Buffers = FileBuffer[] | undefined;
|
|
193
|
+
export type Extras = (FileBuffer | null)[] | null | undefined;
|
|
194
|
+
export {};
|