daily-video-editor 0.0.2 → 0.0.4

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.
@@ -1,4 +1,4 @@
1
- import { ComposeExportPayload, VideoClipItem, VideoComposeEditorModel } from '../../types/videoCompose';
1
+ import { ComposeClip, ComposeExportPayload, VideoClipItem, VideoComposeEditorModel } from '../../types/videoCompose';
2
2
  /**
3
3
  * `VideoComposeEditor` 通过组件 ref 暴露的方法。
4
4
  * 换稿必须调用 `reload`;只改 `v-model` 引用不会回灌时间轴。
@@ -16,4 +16,10 @@ export interface VideoComposeEditorExpose {
16
16
  getMainVideoClips: () => VideoClipItem[];
17
17
  /** 触发上传视频:`onRequestUploadClip`,否则走内置上传 */
18
18
  requestUploadClip: () => void;
19
+ /**
20
+ * 右栏 inspector 当前类型对应的那条选中 clip;无选中或无 inspector 时为 null
21
+ */
22
+ getEditingClip: () => ComposeClip | null;
23
+ /** 当前时间轴多选解析后的 clip 列表 */
24
+ getSelectedClips: () => ComposeClip[];
19
25
  }
@@ -1,5 +1,5 @@
1
1
  import { nextTick } from 'vue';
2
- import { Track, ThemeConfig, OperationButton, ClipContextMenuConfig, TrackContextMenuConfig, Clip, ClipTypeConfig } from '../../clip-track';
2
+ import { Track, ThemeConfig, OperationButton, ClipContextMenuConfig, TrackContextMenuConfig, Clip, ClipTypeConfig, TrackTypeConfig } from '../../clip-track';
3
3
  import { ComposeTrack, VideoClipItem, BgmItem, ComposeSegmentClipAssets, ComposeSubtitleAsset, ComposeTextTemplateDrag, ComposeFrameAspect } from '../../types/videoCompose';
4
4
  /** 可批量改属性的 clip 类型 */
5
5
  export type PatchableClipType = "video" | "audio" | "subtitle" | "text";
@@ -18,6 +18,11 @@ export interface VideoComposeTimelineProps {
18
18
  readonly?: boolean;
19
19
  /** 工程持久化的时间轴倍率;缺省 1 */
20
20
  scale?: number;
21
+ /**
22
+ * 各轨道类型数量上限;未传则使用 clip-track 组件默认。
23
+ * 某类型未出现在配置中视为不限制。
24
+ */
25
+ trackTypes?: TrackTypeConfig;
21
26
  }
22
27
  /** exportData → ComposeTrack[] */
23
28
  declare function exportTracks(): ComposeTrack[];
@@ -92,15 +97,22 @@ declare function addClipToMain(item: {
92
97
  * 向音频轨追加 clip(可多次,对应音频1…N)。
93
98
  */
94
99
  declare function addAudioClip(bgm: BgmItem, startTime?: number): string;
100
+ /** 插入字幕 clip 的可选文案、时间与样式(样式缺省走 normalizeSubtitleClipStyle) */
101
+ type AddSubtitleClipOptions = {
102
+ text?: string;
103
+ startTime?: number;
104
+ durationSec?: number;
105
+ fontFamily?: string;
106
+ fontSize?: number;
107
+ color?: string;
108
+ bold?: boolean;
109
+ italic?: boolean;
110
+ };
95
111
  /**
96
112
  * 在字幕轨 playhead(或指定时间)插入字幕 clip。
97
113
  * 游标落在已有字幕上时插到该 clip 之后,且不与同轨其他字幕重叠。
98
114
  */
99
- declare function addSubtitleClip(options?: {
100
- text?: string;
101
- startTime?: number;
102
- durationSec?: number;
103
- }): string;
115
+ declare function addSubtitleClip(options?: AddSubtitleClipOptions): string;
104
116
  /** 清空字幕轨全部 clip 后写入全局时间轴字幕 */
105
117
  declare function replaceSubtitleClips(items: Array<{
106
118
  start: number;
@@ -243,7 +255,7 @@ declare const _default: import('vue').DefineComponent<VideoComposeTimelineProps,
243
255
  $props: {
244
256
  readonly operationButtons?: OperationButton[] | undefined;
245
257
  readonly scaleConfigButtons?: import('../../clip-track/types').ScaleConfigButton[] | undefined;
246
- readonly trackTypes?: import('../../clip-track/types').TrackTypeConfig | undefined;
258
+ readonly trackTypes?: TrackTypeConfig | undefined;
247
259
  readonly clipConfigs?: ClipTypeConfig | undefined;
248
260
  readonly showToolsBar?: boolean | undefined;
249
261
  readonly showPlayback?: boolean | undefined;
@@ -445,7 +457,8 @@ declare const _default: import('vue').DefineComponent<VideoComposeTimelineProps,
445
457
  }) => void;
446
458
  exportAsJSON: () => string;
447
459
  importFromJSON: (json: string) => boolean;
448
- addTrack: (track: Track) => void;
460
+ canAddTrack: (type: Track["type"]) => boolean;
461
+ addTrack: (track: Track) => boolean;
449
462
  removeTrack: (trackId: string) => void;
450
463
  updateTrack: (trackId: string, updates: Partial<Track>) => void;
451
464
  getTracks: () => {
@@ -1737,7 +1750,6 @@ declare const _default: import('vue').DefineComponent<VideoComposeTimelineProps,
1737
1750
  playbackRates: number[];
1738
1751
  trackControlWidth: number;
1739
1752
  trackContextMenu: TrackContextMenuConfig;
1740
- trackTypes: import('../../clip-track/types').TrackTypeConfig;
1741
1753
  clipConfigs: ClipTypeConfig;
1742
1754
  showToolsBar: boolean;
1743
1755
  enableMainTrackMode: boolean;
@@ -1780,7 +1792,6 @@ declare const _default: import('vue').DefineComponent<VideoComposeTimelineProps,
1780
1792
  playbackRates: number[];
1781
1793
  trackControlWidth: number;
1782
1794
  trackContextMenu: TrackContextMenuConfig;
1783
- trackTypes: import('../../clip-track/types').TrackTypeConfig;
1784
1795
  clipConfigs: ClipTypeConfig;
1785
1796
  showToolsBar: boolean;
1786
1797
  enableMainTrackMode: boolean;
@@ -1830,7 +1841,7 @@ declare const _default: import('vue').DefineComponent<VideoComposeTimelineProps,
1830
1841
  onTrackContextMenuSelect?: ((key: string, track: Track, time: number) => any) | undefined;
1831
1842
  onClipContextMenuSelect?: ((key: string, clip: any) => any) | undefined;
1832
1843
  "onData:changed"?: (() => any) | undefined;
1833
- }>, "zoomIn" | "zoomOut" | "reset" | "undo" | "redo" | "addTrack" | "removeTrack" | "updateTrack" | "addClip" | "removeClip" | "updateClip" | "selectClip" | "clearSelection" | "setClipPlaybackRate" | "getClipDurationAtRate" | "checkPlaybackRateCollision" | "isPlaying" | "play" | "pause" | "togglePlay" | "seekTo" | "setPlaybackRate" | "setScale" | "setScrollLeft" | "getCurrentTime" | ("minScale" | "maxScale" | "pixelsPerSecond" | "snapThreshold" | "operationButtons" | "scaleConfigButtons" | "locale" | "showPlayback" | "showScaleControl" | "playbackRates" | "trackControlWidth" | "trackContextMenu" | "trackTypes" | "clipConfigs" | "showToolsBar" | "enableMainTrackMode" | "enableCrossTrackDrag" | "fps" | "defaultScale" | "enableSnap" | "clipContextMenu" | "theme") | "registerClipType" | "emitTransitionAdded" | "exportData" | "importData" | "exportAsJSON" | "importFromJSON" | "getTracks" | "getSortedTracks" | "getTrackById" | "getMainTrack" | "getClipById" | "moveClip" | "selectClips" | "getSelectedClips" | "getSelectedClipIds" | "getPlaybackRate" | "getDuration" | "getScale" | "getViewportWidth" | "getScrollLeft" | "disableSnap" | "isSnapEnabled" | "getHistoryState"> & {
1844
+ }>, "zoomIn" | "zoomOut" | "reset" | "undo" | "redo" | "canAddTrack" | "addTrack" | "removeTrack" | "updateTrack" | "addClip" | "removeClip" | "updateClip" | "selectClip" | "clearSelection" | "setClipPlaybackRate" | "getClipDurationAtRate" | "checkPlaybackRateCollision" | "isPlaying" | "play" | "pause" | "togglePlay" | "seekTo" | "setPlaybackRate" | "setScale" | "setScrollLeft" | "getCurrentTime" | ("minScale" | "maxScale" | "pixelsPerSecond" | "snapThreshold" | "operationButtons" | "scaleConfigButtons" | "locale" | "showPlayback" | "showScaleControl" | "playbackRates" | "trackControlWidth" | "trackContextMenu" | "clipConfigs" | "showToolsBar" | "enableMainTrackMode" | "enableCrossTrackDrag" | "fps" | "defaultScale" | "enableSnap" | "clipContextMenu" | "theme") | "registerClipType" | "emitTransitionAdded" | "exportData" | "importData" | "exportAsJSON" | "importFromJSON" | "getTracks" | "getSortedTracks" | "getTrackById" | "getMainTrack" | "getClipById" | "moveClip" | "selectClips" | "getSelectedClips" | "getSelectedClipIds" | "getPlaybackRate" | "getDuration" | "getScale" | "getViewportWidth" | "getScrollLeft" | "disableSnap" | "isSnapEnabled" | "getHistoryState"> & {
1834
1845
  reset: () => void;
1835
1846
  registerClipType: (type: string, config: any) => void;
1836
1847
  emitTransitionAdded: (transitionClip: any, beforeClipId: string, afterClipId: string) => void;
@@ -1850,7 +1861,8 @@ declare const _default: import('vue').DefineComponent<VideoComposeTimelineProps,
1850
1861
  }) => void;
1851
1862
  exportAsJSON: () => string;
1852
1863
  importFromJSON: (json: string) => boolean;
1853
- addTrack: (track: Track) => void;
1864
+ canAddTrack: (type: Track["type"]) => boolean;
1865
+ addTrack: (track: Track) => boolean;
1854
1866
  removeTrack: (trackId: string) => void;
1855
1867
  updateTrack: (trackId: string, updates: Partial<Track>) => void;
1856
1868
  getTracks: () => {
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { VideoComposeEditor, createDefaultVideoComposeEditorModel } from './editor';
2
- export type { BgmItem, ComposeBgmUploadResult, ComposeCatalogUploadPayload, ComposeClip, ComposeEditorProps, ComposeExportPayload, ComposeSegmentClipAssets, ComposeTrack, ComposeUploadAdapter, MediaBizType, MediaClip, MediaRef, SubtitleClip, TextClip, TextTemplateItem, TrackType, VideoClipItem, VideoComposeEditorExpose, VideoComposeEditorModel, } from './editor';
2
+ export type { BgmItem, ComposeBgmUploadResult, ComposeCatalogUploadPayload, ComposeClip, ComposeEditorProps, ComposeExportPayload, ComposeSegmentClipAssets, ComposeTrack, ComposeUploadAdapter, MediaBizType, MediaClip, MediaRef, SubtitleClip, TextClip, TextTemplateItem, TrackType, TrackTypeConfig, VideoClipItem, VideoComposeEditorExpose, VideoComposeEditorModel, } from './editor';
3
3
  export { createComposeMediaResolver, isPassthroughMediaUrl, mediaCorsMessage, type ComposeMediaResolver, type ResolveMediaUrl, } from './service/resolveComposeMediaUrl';