Hiyve Components - v1.0.0
    Preparing search index...

    Interface ClipPlayerProps

    Props for ClipPlayer.

    interface ClipPlayerProps {
        clip: ClipItem;
        colors: ClipCompositionColors;
        dragHandle?: boolean;
        editable: boolean;
        enableAudioPassthrough: boolean;
        enableMarkers?: boolean;
        enableRegions: boolean;
        icons: ClipCompositionIcons;
        isPlayingAll?: boolean;
        labels: ClipCompositionLabels;
        markersUserId?: string;
        onEnded?: (clipId: string) => void;
        onError?: (error: Error) => void;
        onMarkerAdd?: (clipId: string, marker: TimelineMarkerData) => void;
        onMarkerChange?: (clipId: string, marker: TimelineMarkerData) => void;
        onMarkerDelete?: (clipId: string, markerId: string) => void;
        onNameChange?: (clipId: string, name: string) => void;
        onPause?: (clipId: string) => void;
        onPlay?: (clipId: string) => void;
        onRegionChange?: (clipId: string, region: RegionData) => void;
        onRegionDelete?: (clipId: string, regionId: string) => void;
        onRemove?: (clipId: string) => void;
        onVolumeChange?: (clipId: string, volume: number) => void;
        ownerName?: string;
        playStartTime?: number | null;
        resolveClipOwnerName?: (clip: ClipItem) => string | undefined;
        styles: ClipCompositionStyles;
    }
    Index

    Properties

    clip: ClipItem
    dragHandle?: boolean

    When true, the clip's title-bar acts as the only drag source for reordering. The card body (player area, timeline, controls) stays non-draggable so users can interact with media controls without accidentally starting a drag. Drag events still bubble to the grid's wrapper which owns the drop logic.

    editable: boolean
    enableAudioPassthrough: boolean
    enableMarkers?: boolean

    Enable timeline markers/comments

    enableRegions: boolean
    isPlayingAll?: boolean

    When true, programmatically start playback

    markersUserId?: string

    Current user ID for marker edit/delete permissions

    onEnded?: (clipId: string) => void
    onError?: (error: Error) => void
    onMarkerAdd?: (clipId: string, marker: TimelineMarkerData) => void
    onMarkerChange?: (clipId: string, marker: TimelineMarkerData) => void
    onMarkerDelete?: (clipId: string, markerId: string) => void
    onNameChange?: (clipId: string, name: string) => void
    onPause?: (clipId: string) => void
    onPlay?: (clipId: string) => void
    onRegionChange?: (clipId: string, region: RegionData) => void
    onRegionDelete?: (clipId: string, regionId: string) => void
    onRemove?: (clipId: string) => void
    onVolumeChange?: (clipId: string, volume: number) => void
    ownerName?: string

    Legacy fallback for the caption — see ClipCompositionProps.ownerName. Prefer resolveClipOwnerName when clips may have different recorders.

    playStartTime?: number | null

    Master-clock anchor (a performance.now() value) at which the clip should be playing position 0. When set together with isPlayingAll, the player schedules its play() to fire at that exact wall-clock and runs a periodic drift-correction loop so multi-clip Play All stays in sync. Null when there's no synchronised playback in flight.

    resolveClipOwnerName?: (clip: ClipItem) => string | undefined

    Per-clip owner-name resolver. When provided, this takes precedence over clip.createdByName and ownerName for the caption shown after the duration. See ClipCompositionProps.resolveClipOwnerName.