VidStudio SDK reference
    Preparing search index...

    Type Alias EditorEvent

    EditorEvent:
        | { kind: "timeline-changed" }
        | { clipId: string | null; kind: "effects-changed" }
        | { kind: "project-changed" }
        | { kind: "player-state"; state: PlayerState }
        | { kind: "time"; seconds: number }
        | { kind: "duration"; seconds: number }
        | { fraction: number; kind: "load-progress" }
        | { assetId: string; fraction: number | null; kind: "proxy-progress" }
        | { count: number; kind: "audio-loading" }
        | { kind: "export-progress"; progress: ExportProgress }
        | { kind: "warning"; message: string }
        | { error: Error; kind: "error"; message: string }
        | { kind: "preview-played" }
        | {
            addedTo: "new_track" | "existing_track";
            clipDurationSec: number;
            kind: "media-imported";
            mediaType: "video" | "audio" | "both";
        }
        | { kind: "export-started"; settings: ExportSettings }
        | {
            durationMs: number;
            kind: "export-finished";
            result: ExportResult;
            settings: ExportSettings;
        }
        | {
            durationMs: number;
            error: Error;
            kind: "export-failed";
            phase: ExportProgress["phase"]
            | null;
            settings: ExportSettings;
        }
        | {
            error: Error;
            kind: "storage-full";
            operation: "import"
            | "export"
            | "delete_track";
        }

    Type Declaration

    • { kind: "timeline-changed" }

      Tracks, clips or transitions changed: re-read getTimeline().

    • { clipId: string | null; kind: "effects-changed" }

      Effects, keyframes or geometry changed on one clip (null: unknown, re-read all).

    • { kind: "project-changed" }

      Name, canvas size, frame rate, work area or loop changed.

    • { kind: "player-state"; state: PlayerState }
    • { kind: "time"; seconds: number }
    • { kind: "duration"; seconds: number }
    • { fraction: number; kind: "load-progress" }
    • { assetId: string; fraction: number | null; kind: "proxy-progress" }

      A proxy is being made (0 to 1), or null once it is finished, failed or stopped.

    • { count: number; kind: "audio-loading" }

      How many audio tracks are being added and still decoding their sound.

    • { kind: "export-progress"; progress: ExportProgress }
    • { kind: "warning"; message: string }
    • { error: Error; kind: "error"; message: string }
    • { kind: "preview-played" }

      play() started the preview. Sent on every play; a host that counts sessions dedupes.

    • {
          addedTo: "new_track" | "existing_track";
          clipDurationSec: number;
          kind: "media-imported";
          mediaType: "video" | "audio" | "both";
      }

      An asset was placed on the timeline with addTrackFromAsset or addClipFromAsset. A picture and its linked sound are one event, "both"; see PlaceOptions.withLinkedSound.

    • { kind: "export-started"; settings: ExportSettings }
    • {
          durationMs: number;
          kind: "export-finished";
          result: ExportResult;
          settings: ExportSettings;
      }
    • {
          durationMs: number;
          error: Error;
          kind: "export-failed";
          phase: ExportProgress["phase"] | null;
          settings: ExportSettings;
      }

      Any failure but a cancel, refusals included. phase is the last progress phase reached.

    • {
          error: Error;
          kind: "storage-full";
          operation: "import" | "export" | "delete_track";
      }

      A write was refused because browser storage is full.