Player class

Loads, controls and renders audio and video content represented through Sources.

The player emits events during its lifecycle. See PlayerEventHandler on how to subscribe to events. Events are divided into player events and source events, depending on if they are specific to the player or a source.

By default, a player instance does not provide any UI components. To use the default Bitmovin Player Web UI, a player instance can be attached to a PlayerView.

Constructors

Player({PlayerConfig config = const PlayerConfig()})

Properties

analytics AnalyticsApi
Provides access to Analytics related functionality.
no setter
availableSubtitles Future<List<SubtitleTrack>>
A list of all available SubtitleTracks of the active Source, including "off" subtitle track.
no setter
config PlayerConfig
The player config.
final
currentTime Future<double>
The current playback time of the active Source in seconds. For VoD streams the returned time ranges between 0 and the duration of the asset. For live streams, a Unix timestamp denoting the current playback position is returned.
no setter
duration Future<double>
The duration of the active Source in seconds. Will be double.infinity for live streams.
no setter
hashCode int
The hash code for this object.
no setterinherited
id String
Unique identifier for this player instance.
no setter
isAirPlayActive Future<bool>
Returns true when media is played externally using AirPlay.
no setter
isAirPlayAvailable Future<bool>
Returns true when AirPlay is available.
no setter
isCastAvailable Future<bool>
Whether casting to a cast-compatible remote device is available. CastAvailableEvent signals when casting becomes available.
no setter
isCasting Future<bool>
Whether video is currently being casted to a remote device and not played locally.
no setter
isLive Future<bool>
Whether the currently active Source is a live stream.
no setter
isPlaying Future<bool>
Whether the player is currently playing, i.e. has started playback and is not paused.
no setter
maxTimeShift Future<double>
Returns the limit in seconds for time shifting. Is either negative or 0. Only applicable for live streams.
no setter
onAirPlayAvailable ← void Function(AirPlayAvailableEvent)
See AirPlayAvailableEvent for details on this event.
no getterinherited
onAirPlayChanged ← void Function(AirPlayChangedEvent)
See AirPlayChangedEvent for details on this event.
no getterinherited
onCastAvailable ← void Function(CastAvailableEvent)
See CastAvailableEvent for details on this event.
no getterinherited
onCastStart ← void Function(CastStartEvent)
See CastStartEvent for details on this event.
no getterinherited
onCastStarted ← void Function(CastStartedEvent)
See CastStartedEvent for details on this event.
no getterinherited
onCastStopped ← void Function(CastStoppedEvent)
See CastStoppedEvent for details on this event.
no getterinherited
onCastTimeUpdated ← void Function(CastTimeUpdatedEvent)
See CastTimeUpdatedEvent for details on this event.
no getterinherited
onCastWaitingForDevice ← void Function(CastWaitingForDeviceEvent)
See CastWaitingForDeviceEvent for details on this event.
no getterinherited
onCueEnter ← void Function(CueEnterEvent)
See CueEnterEvent for details on this event.
no getterinherited
onCueExit ← void Function(CueExitEvent)
See CueExitEvent for details on this event.
no getterinherited
onError ← void Function(ErrorEvent)
See ErrorEvent for details on this event.
no getterinherited
onEvent ← void Function(Event)
Receives any event that is emitted by the player.
no getterinherited
onInfo ← void Function(InfoEvent)
See InfoEvent for details on this event.
no getterinherited
onMuted ← void Function(MutedEvent)
See MutedEvent for details on this event.
no getterinherited
onPaused ← void Function(PausedEvent)
See PausedEvent for details on this event.
no getterinherited
onPlay ← void Function(PlayEvent)
See PlayEvent for details on this event.
no getterinherited
onPlaybackFinished ← void Function(PlaybackFinishedEvent)
See PlaybackFinishedEvent for details on this event.
no getterinherited
onPlaying ← void Function(PlayingEvent)
See PlayingEvent for details on this event.
no getterinherited
onReady ← void Function(ReadyEvent)
See ReadyEvent for details on this event.
no getterinherited
onSeek ← void Function(SeekEvent)
See SeekEvent for details on this event.
no getterinherited
onSeeked ← void Function(SeekedEvent)
See SeekedEvent for details on this event.
no getterinherited
onSourceAdded ← void Function(SourceAddedEvent)
See SourceAddedEvent for details on this event.
no getterinherited
onSourceError ← void Function(SourceErrorEvent)
See SourceErrorEvent for details on this event.
no getterinherited
onSourceInfo ← void Function(SourceInfoEvent)
See SourceInfoEvent for details on this event.
no getterinherited
onSourceLoad ← void Function(SourceLoadEvent)
See SourceLoadEvent for details on this event.
no getterinherited
onSourceLoaded ← void Function(SourceLoadedEvent)
See SourceLoadedEvent for details on this event.
no getterinherited
onSourceRemoved ← void Function(SourceRemovedEvent)
See SourceRemovedEvent for details on this event.
no getterinherited
onSourceUnloaded ← void Function(SourceUnloadedEvent)
See SourceUnloadedEvent for details on this event.
no getterinherited
onSourceWarning ← void Function(SourceWarningEvent)
See SourceWarningEvent for details on this event.
no getterinherited
onSubtitleAdded ← void Function(SubtitleAddedEvent)
See SubtitleAddedEvent for details on this event.
no getterinherited
onSubtitleChanged ← void Function(SubtitleChangedEvent)
See SubtitleChangedEvent for details on this event.
no getterinherited
onSubtitleRemoved ← void Function(SubtitleRemovedEvent)
See SubtitleRemovedEvent for details on this event.
no getterinherited
onTimeChanged ← void Function(TimeChangedEvent)
See TimeChangedEvent for details on this event.
no getterinherited
onTimeShift ← void Function(TimeShiftEvent)
See TimeShiftEvent for details on this event.
no getterinherited
onTimeShifted ← void Function(TimeShiftedEvent)
See TimeShiftedEvent for details on this event.
no getterinherited
onUnmuted ← void Function(UnmutedEvent)
See UnmutedEvent for details on this event.
no getterinherited
onWarning ← void Function(WarningEvent)
See WarningEvent for details on this event.
no getterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
subtitle Future<SubtitleTrack>
The currently selected SubtitleTrack.
no setter
timeShift Future<double>
Returns the the current time shift value of the player in seconds. It describes the offset from the live edge. The returned value is within maxTimeShift (which is a negative value) and 0 (the live edge). Only applicable for live streams.
no setter

Methods

castStop() Future<void>
Stops casting the current video.
castVideo() Future<void>
Initiates casting the current video to a cast-compatible remote device. The user has to choose to which device it should be sent.
dispose() Future<void>
Disposes the player instance.
emit(Event event) → void
Takes an Event and emits it to the corresponding event listener.
inherited
loadSource(Source source) Future<void>
Starts a new playback session with the provided Source.
loadSourceConfig(SourceConfig sourceConfig) Future<void>
Starts a new playback session with a Source that is created based on the provided SourceConfig.
mute() Future<void>
Mutes the player.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onPlatformEvent(dynamic event) → void
Takes an event as JSON that was received from the native platform, deserializes it to a typed event object and emits it to the corresponding event listener.
inherited
pause() Future<void>
Pauses playback.
play() Future<void>
Starts or resumes playback.
removeSubtitle(String id) Future<void>
Removes the existing SubtitleTrack specified by id. If the track is currently active, it will be deactivated and then removed. If no SubtitleTrack with the given id exists, the call will be ignored. Using this API removes the SubtitleTrack from the availableSubtitles, use setSubtitle to disable an active SubtitleTrack.
seek(double time) Future<void>
Seeks to the given playback time in seconds. Must not be greater than the duration of the active Source. Only applicable for VOD. For live streams, use timeShift and setTimeShift.
setSubtitle(String? id) Future<void>
Sets the currently selected SubtitleTrack based on the provided id. Using null as id disables subtitles. A list of currently available SubtitleTracks can be retrieved via availableSubtitles.
setTimeShift(double timeShift) Future<void>
Shifts the playback time to the given offset in seconds from the live edge. Has to be within maxTimeShift (which is a negative value) and 0. The offset can be positive and is then interpreted as a UNIX timestamp in seconds. The value has to be within the time shift window, as specified by maxTimeShift. Only applicable for live streams. For VOD, use seek.
showAirPlayTargetPicker() Future<void>
Shows the AirPlay playback target picker.
toString() String
A string representation of this object.
inherited
unmute() Future<void>
Unmutes the player.

Operators

operator ==(Object other) bool
The equality operator.
inherited