Skip to main content

Events

All events are passed as callback props on BBPlayerView. They fire when the native player triggers the corresponding action.

<BBPlayerView
jsonUrl="..."
onDidTriggerPlay={() => console.log('Playing')}
onDidTriggerPause={() => console.log('Paused')}
onDidTriggerStateChange={(state) => console.log('State:', state)}
/>

Setup & Lifecycle

EventPayloadDescription
onDidSetupWithJsonUrlurl: stringPlayer initialized with URL
onDidTriggerApiReadyPlayer API is ready for method calls
onDidFailWithErrorerror: stringPlayer setup failed

Playback

EventPayloadDescription
onDidTriggerPlayPlayback started
onDidTriggerPausePlayback paused
onDidTriggerPlayingActively playing (after buffering)
onDidTriggerEndedPlayback reached the end
onDidTriggerCanPlayEnough data buffered to play
onDidTriggerSeekingSeek operation started
onDidTriggerSeekedposition: numberSeek completed
onDidTriggerStallPlayback stalled (buffering)
onDidTriggerDurationChangeduration: numberMedia duration available/changed
onDidTriggerVolumeChangevolume: number, muted: booleanVolume or mute state changed

State Changes

EventPayloadDescription
onDidTriggerStateChangestate: StatePlayer state changed
onDidTriggerPhaseChangephase: PhasePlayer phase changed
onDidTriggerModeChangemode: stringPlayer mode changed

State Values

type State = "IDLE" | "LOADING" | "PLAYING" | "PAUSED" | "ERROR";
StateDescription
IDLENo media loaded
LOADINGMedia is loading
PLAYINGActively playing
PAUSEDPlayback paused
ERRORAn error occurred

Phase Values

type Phase = "INIT" | "PRE" | "MAIN" | "POST" | "EXIT";
PhaseDescription
INITPlayer initializing
PREPre-roll ads playing
MAINMain content playing
POSTPost-roll ads playing
EXITPlayback session ended

Media Loading

EventPayloadDescription
onDidTriggerMediaClipLoadedclip: MediaClipMedia clip loaded successfully
onDidTriggerMediaClipFailedMedia clip failed to load
onDidTriggerProjectLoadedproject: ProjectProject data loaded

View Events

EventPayloadDescription
onDidTriggerViewStartedView session started (for analytics)
onDidTriggerViewFinishedView session completed

Fullscreen

EventPayloadDescription
onDidTriggerFullscreenEntered fullscreen
onDidTriggerRetractFullscreenExited fullscreen (any method)

Layout

EventPayloadDescription
onDidRequestCollapsePlayer requests collapse (outstream)
onDidRequestExpandPlayer requests expand (outstream)
onDidRequestOpenUrlurl: stringPlayer requests opening a URL (ad click-through)

Auto-Pause

EventPayloadDescription
onDidTriggerAutoPausewhy: stringPlayback auto-paused (reason provided)
onDidTriggerAutoPausePlaywhy: stringAuto-pause resumed

Ads

EventPayloadDescription
onDidTriggerAdLoadStartAd request started
onDidTriggerAdLoadedAd loaded successfully
onDidTriggerAdStartedAd playback began
onDidTriggerAdFinishedSingle ad completed
onDidTriggerAdNotFoundNo ad returned from server
onDidTriggerAdErrorerror: stringAd playback failed
onDidTriggerAdQuartile1Ad reached 25%
onDidTriggerAdQuartile2Ad reached 50%
onDidTriggerAdQuartile3Ad reached 75%
onDidTriggerAllAdsCompletedAll scheduled ads completed

Custom Statistics

EventPayloadDescription
onDidTriggerCustomStatisticsstats: CustomStatisticsCustom analytics event from native SDK
type CustomStatistics = {
ident: string; // Event identifier
ev: string; // Event type/name
aux: Record<string, string>; // Additional data
};

See Analytics Guide for integration examples.