Package com.castlabs.android.player
Interface PlayerListener
- All Known Implementing Classes:
AbstractPlayerListener
,MultiControllerPlaylist
,PlaylistController
public interface PlayerListener
This is a high level listener interface that provides callbacks for events from a
video player.
*NOTE* that all listener methods are invoked on the UI/main thread of your applications.
You can directly interact with UI components from within the implementation of you listener.
The SDK contains an
AbstractPlayerListener
implementation that you can use if you
don't want to implement all the callbacks and are interested only in a subset of the available
callbacks.- Since:
- 1.1.0
-
Method Summary
Modifier and TypeMethodDescriptionvoid
onDisplayChanged
(DisplayInfo displayInfo, boolean canPlay) Callback triggered when the underlying screen information changes.void
onDurationChanged
(long durationUs) Callback triggered when the stream duration has been refreshed.void
onError
(CastlabsPlayerException error) Error callback that is called when exceptions are raised on background threads.void
Error callback that is called when a fatal exception is raised on background threads.void
Invoked when all the remaining content has been buffered.void
onPlaybackPositionChanged
(long playbackPositionMs) Event triggered when the playback position changed.void
Callback triggered when the player model has been changed and thePlayerController
can now be queried for available and selected video tracks and qualities, audio tracks and subtitle tracks and the duration.void
void
onSeekRangeChanged
(long startTimeMs, long endTimeMs) Event triggered when the seek range changedvoid
onSeekTo
(long newPosition) This callback is invoked when the position of the video playback is actively changed by thePlayerController
.void
onSpeedChanged
(float speed) Callback triggered when the playback speed is changed.void
State change event triggered when the player state changedvoid
onVideoKeyStatusChanged
(List<VideoTrackQuality> trackList) Callback triggered when video track's DRM-key status is changedvoid
onVideoSizeChanged
(int width, int height, float pixelWidthHeightRatio) Invoked each time there's a change in the size of the video being rendered.
-
Method Details
-
onFatalErrorOccurred
Error callback that is called when a fatal exception is raised on background threads. All Exceptions are wrapped in aCastlabsPlayerException
. This method will be invoked *only* for fatal errors, and *before* the PlayerController isreleased
. TheonError(CastlabsPlayerException)
method will be invoked after this one.- Parameters:
error
- the player exception
-
onError
Error callback that is called when exceptions are raised on background threads. All Exceptions are wrapped in aCastlabsPlayerException
. If the error isfatal
, the PlayerController will bereleased
right before this callback.- Parameters:
error
- the player exception
-
onStateChanged
State change event triggered when the player state changed- Parameters:
state
- the new state
-
onSeekTo
void onSeekTo(long newPosition) This callback is invoked when the position of the video playback is actively changed by thePlayerController
.- Parameters:
newPosition
- the new position in microseconds
-
onSeekCompleted
void onSeekCompleted() -
onVideoSizeChanged
void onVideoSizeChanged(int width, int height, float pixelWidthHeightRatio) Invoked each time there's a change in the size of the video being rendered.- Parameters:
width
- The video width in pixels.height
- The video height in pixels.pixelWidthHeightRatio
- The width to height ratio of each pixel. For the normal case of square pixels this will be equal to 1.0. Different values are indicative of anamorphic content.- Since:
- 3.0.0
-
onSeekRangeChanged
void onSeekRangeChanged(long startTimeMs, long endTimeMs) Event triggered when the seek range changed- Parameters:
startTimeMs
- the possible seek start time in millisecondsendTimeMs
- the possible seek end time in milliseconds
-
onPlaybackPositionChanged
void onPlaybackPositionChanged(long playbackPositionMs) Event triggered when the playback position changed. Note that for performance reasons, this is triggered at most once per second, hence you will only see when seconds changing during playback.- Parameters:
playbackPositionMs
- the current playback position in milliseconds
-
onDisplayChanged
Callback triggered when the underlying screen information changes. This is triggered for example when a secondary display is connected. The passedcanPlay
parameter indicates weather playback can be resumed based on the current display and the secondary display configuration of the player controller (seePlayerController.getSecondaryDisplay()
- Parameters:
displayInfo
- the current display informationcanPlay
- True if playback can be started or resumed with the current display configuration
-
onDurationChanged
void onDurationChanged(long durationUs) Callback triggered when the stream duration has been refreshed.- Parameters:
durationUs
- Duration in microseconds
-
onSpeedChanged
void onSpeedChanged(float speed) Callback triggered when the playback speed is changed.- Parameters:
speed
- Playback speed
-
onPlayerModelChanged
void onPlayerModelChanged()Callback triggered when the player model has been changed and thePlayerController
can now be queried for available and selected video tracks and qualities, audio tracks and subtitle tracks and the duration. The player model is changed every time upon the playback initial start-up or the media period change. Note that each time the player model changes, the video, audio, subtitle tracks and video quality are re-selected based on the parameters provided inPlayerController.open(android.os.Bundle)
or via otherPlayerController
APIs. The callback is not triggered when the video, audio, subtitle tracks and video quality are selected by the application during playback usingPlayerController.setVideoTrack(VideoTrack)
,PlayerController.setVideoQuality(VideoTrackQuality)
,PlayerController.setAudioTrack(AudioTrack)
andPlayerController.setSubtitleTrack(SubtitleTrack)
. -
onVideoKeyStatusChanged
Callback triggered when video track's DRM-key status is changed- Parameters:
trackList
- The list of tracks with changed key statuses- Since:
- 4.2.36
-
onFullyBuffered
void onFullyBuffered()Invoked when all the remaining content has been buffered. From this point onwards no more network activity is required to finish playing the current media.- Since:
- 4.2.1
-