Skip to main content

Function: Video()

Video(srcOrOptions?: string | { align?: Align; blur?: number; brightness?: number; className?: string; color?: string; controls?: boolean; currentTime?: number; customPositioned?: boolean; enterDelay?: number; enterDuration?: number; exitDelay?: number; exitDuration?: number; fit?: ImageFit; height?: Size; id?: string; interactive?: boolean; loop?: boolean; muted?: boolean; onActivate?: () => void; onDeactivate?: () => void; onMount?: () => void; onUnmount?: () => void; opacity?: number; origin?: ElementAnchor; playbackRate?: number; playing?: boolean; position?: Position; preload?: "metadata" | "none" | "auto"; rotation?: number; scale?: number; size?: Size; src?: string; style?: Properties<0 | string & object, string & object>; theme?: Partial<ThemeConfig>; volume?: number; width?: Size; x?: PositionCoord; y?: PositionCoord; }, maybeOptions?: object): VideoElement

Creates a reactive native Video player element on stage.

Parameters​

ParameterTypeDescription
srcOrOptionsstring | { align?: Align; blur?: number; brightness?: number; className?: string; color?: string; controls?: boolean; currentTime?: number; customPositioned?: boolean; enterDelay?: number; enterDuration?: number; exitDelay?: number; exitDuration?: number; fit?: ImageFit; height?: Size; id?: string; interactive?: boolean; loop?: boolean; muted?: boolean; onActivate?: () => void; onDeactivate?: () => void; onMount?: () => void; onUnmount?: () => void; opacity?: number; origin?: ElementAnchor; playbackRate?: number; playing?: boolean; position?: Position; preload?: "metadata" | "none" | "auto"; rotation?: number; scale?: number; size?: Size; src?: string; style?: Properties<0 | string & object, string & object>; theme?: Partial<ThemeConfig>; volume?: number; width?: Size; x?: PositionCoord; y?: PositionCoord; }-
maybeOptions{ align?: Align; blur?: number; brightness?: number; className?: string; color?: string; controls?: boolean; currentTime?: number; customPositioned?: boolean; enterDelay?: number; enterDuration?: number; exitDelay?: number; exitDuration?: number; fit?: ImageFit; height?: Size; id?: string; interactive?: boolean; loop?: boolean; muted?: boolean; onActivate?: () => void; onDeactivate?: () => void; onMount?: () => void; onUnmount?: () => void; opacity?: number; origin?: ElementAnchor; playbackRate?: number; playing?: boolean; position?: Position; preload?: "metadata" | "none" | "auto"; rotation?: number; scale?: number; size?: Size; src?: string; style?: Properties<0 | string & object, string & object>; theme?: Partial<ThemeConfig>; volume?: number; width?: Size; x?: PositionCoord; y?: PositionCoord; }-
maybeOptions.align?Align-
maybeOptions.blur?numberBlur in virtual pixels (default: 0).
maybeOptions.brightness?numberBrightness multiplier (default: 1).
maybeOptions.className?string-
maybeOptions.color?stringForeground CSS color (default: component/theme color).
maybeOptions.controls?booleanWhether to show native browser video controls. Defaults to false.
maybeOptions.currentTime?numberInitial or target playback position in seconds.
maybeOptions.customPositioned?booleanWhether this element manages its own CSS transform / positioning (disables stage translate3d).
maybeOptions.enterDelay?numberDelay in seconds before entering scene transition begins.
maybeOptions.enterDuration?numberDuration in seconds for entering scene transition.
maybeOptions.exitDelay?numberDelay in seconds before exiting scene transition begins.
maybeOptions.exitDuration?numberDuration in seconds for exiting scene transition.
maybeOptions.fit?ImageFitSizing fit: "contain" (default)
maybeOptions.height?SizeHeight in stage units or CSS length (default: content size).
maybeOptions.id?string-
maybeOptions.interactive?booleanWhether clicking the video toggles play/pause interactively. Defaults to true when controls is false.
maybeOptions.loop?booleanWhether the video loops automatically when reaching the end. Defaults to false.
maybeOptions.muted?booleanWhether audio track is muted. Defaults to true (required for browser autoplay).
maybeOptions.onActivate?() => void-
maybeOptions.onDeactivate?() => void-
maybeOptions.onMount?() => void-
maybeOptions.onUnmount?() => void-
maybeOptions.opacity?numberWhole-element opacity from 0 to 1 (default: 1).
maybeOptions.origin?ElementAnchorWhich point of the element sits on its coordinate (default: "top-left").
maybeOptions.playbackRate?numberPlayback speed multiplier (e.g. 1.0, 1.5, 2.0). Defaults to 1.0.
maybeOptions.playing?booleanWhether the video is currently playing. Defaults to false.
maybeOptions.position?Position-
maybeOptions.preload?"metadata" | "none" | "auto"Preload policy: "metadata" (default)
maybeOptions.rotation?numberRotation in degrees (default: 0).
maybeOptions.scale?numberScale multiplier (default: 1).
maybeOptions.size?SizeBoth dimensions in stage units or CSS length (default: unset).
maybeOptions.src?stringVideo source URL or media asset path (optional if passed as first argument).
maybeOptions.style?Properties<0 | string & object, string & object>-
maybeOptions.theme?Partial<ThemeConfig>-
maybeOptions.volume?numberVolume level from 0.0 (silent) to 1.0 (maximum). Defaults to 1.0.
maybeOptions.width?SizeWidth in stage units or CSS length (default: content size).
maybeOptions.x?PositionCoordHorizontal position in stage units (default: 0).
maybeOptions.y?PositionCoordVertical position in stage units (default: 0).

Returns​

VideoElement

Example​

const demo = Video("./screencast.mp4", {
x: "center",
y: "center",
scale: 0.8,
muted: true,
playing: false,
});

// In step:
demo.playing = true;