Interface

TimelineMediaSyncAdapter

Adapter callbacks used to connect timeline playback to an external media clock.

Usage notes

Implement this adapter when your media surface owns decoding, rendering, or audio scheduling. useTimelineMediaSync calls these callbacks after it resolves active clips with ActiveLayerSelector records and ActiveLayerResult snapshots.

Signature

Type Definition
Interface TimelineMediaSyncAdapter

Type parameters

NameConstraintDefaultDescription
LayerNamestringstringNamed media layer keys from your `layers` object, such as `"visuals"` or `"audio"`.

Properties

NameSignatureDescription
getClockTime(): numberReturns current timeline seconds from the external media clock.
onStatus?(status: TimelineContentPlaybackStatus): voidReceives high-level playback status changes.
resumeClock?(playbackRate: number): MaybePromise<void>Resumes browser-gated clocks, such as AudioContext, from a user gesture.
seek?(timelineTime: RationalTime, activeLayers: ActiveLayerResult<LayerName>): MaybePromise<void>Refreshes external media after paused playhead or timeline edits.
setClockRate?(playbackRate: number): voidUpdates the external clock rate before timeline playback rate changes.
startClock(timelineTime: RationalTime, playbackRate: number): MaybePromise<boolean>Starts the external media clock at a timeline time and playback rate.
stopClock?(): voidStops the external media clock if timeline playback cannot start.
syncLayers?(details: TimelineLayerSyncDetails<LayerName>): MaybePromise<void>Synchronizes external rendering, audio, text, or effects for active layers during playback.