# Event Listeners Reference

ByteArk Player emits events through ByteArkPlayerListener. Configure the callbacks you care about when constructing the listener, then attach it to ByteArkPlayerController.

# Usage

final listener = ByteArkPlayerListener(
  onPlayerReady: () => debugPrint("Player ready"),
  onPlaybackPlay: () => debugPrint("Playback started"),
  onPlaybackPause: () => debugPrint("Playback paused"),
  onPlaybackError: (error) => debugPrint("Error: ${error.msg}"),
  onAdsStart: (data) => debugPrint("Ad started: ${data.toMap()}"),
);
final controller = ByteArkPlayerController(listener: listener);
1
2
3
4
5
6
7
8
9

# Player lifecycle events

Callback Description
onPlayerReady Player is ready
onPlayerLoadingMetadata Started loading metadata
onPlayerEnterFullscreen Entered fullscreen
onPlayerExitFullscreen Exited fullscreen
onPlayerEnterPictureInPictureMode Entered Picture-in-Picture
onPlayerExitPictureInPictureMode Exited Picture-in-Picture

# Playback events

Callback Description
onPlaybackFirstPlay First playback
onPlaybackPlay Playback starts/resumes
onPlaybackPause Playback paused
onPlaybackEnded Playback ended
onPlaybackSeeking Seek started
onPlaybackSeeked Seek ended
onPlaybackBuffering Buffering started
onPlaybackBuffered Buffering ended
onPlaybackTimeupdate Playback position updated
onPlaybackResolutionChanged Resolution changed
onPlaybackPlaylistItemChanged Playlist item changed
onPlaybackError(ByteArkPlayerPlaybackErrorData error) A playback error occurred
Callback Description
onAdsRequest Ad request sent
onAdsBreakStart Ad break started
onAdsStart(ByteArkPlayerAdsData data) An ad started
onAdsImpressed(ByteArkPlayerAdsData data) Ad impression recorded
onAdsFirstQuartile(ByteArkPlayerAdsData data) Ad reached the first quartile (25%)
onAdsMidPoint(ByteArkPlayerAdsData data) Ad reached the midpoint (50%)
onAdsThirdQuartile(ByteArkPlayerAdsData data) Ad reached the third quartile (75%)
onAdsCompleted(ByteArkPlayerAdsData data) An ad finished playing
onAdsClicked(ByteArkPlayerAdsData data) Ad clicked by viewer
onAdsSkipped(ByteArkPlayerAdsData data) Ad skipped by viewer
onAdsBreakEnd Ad break ended
onAllAdsCompleted All ads finished
onAdsError(ByteArkPlayerAdsErrorData error) Ads playback error