public interface AnalyticsListener
All events are recorded with an AnalyticsListener.EventTime specifying the elapsed real time and media
time at the time of the event.
All methods have no-op default implementations to allow selective overrides.
| Modifier and Type | Interface and Description |
|---|---|
static class |
AnalyticsListener.EventTime
Time information of an event.
|
| Modifier and Type | Method and Description |
|---|---|
default void |
onAudioAttributesChanged(AnalyticsListener.EventTime eventTime,
AudioAttributes audioAttributes)
Called when the audio attributes change.
|
default void |
onAudioSessionId(AnalyticsListener.EventTime eventTime,
int audioSessionId)
Called when the audio session id is set.
|
default void |
onAudioUnderrun(AnalyticsListener.EventTime eventTime,
int bufferSize,
long bufferSizeMs,
long elapsedSinceLastFeedMs)
Called when an audio underrun occurred.
|
default void |
onBandwidthEstimate(AnalyticsListener.EventTime eventTime,
int totalLoadTimeMs,
long totalBytesLoaded,
long bitrateEstimate)
Called when the bandwidth estimate for the current data source has been updated.
|
default void |
onDecoderDisabled(AnalyticsListener.EventTime eventTime,
int trackType,
DecoderCounters decoderCounters)
Called when an audio or video decoder has been disabled.
|
default void |
onDecoderEnabled(AnalyticsListener.EventTime eventTime,
int trackType,
DecoderCounters decoderCounters)
Called when an audio or video decoder has been enabled.
|
default void |
onDecoderInitialized(AnalyticsListener.EventTime eventTime,
int trackType,
java.lang.String decoderName,
long initializationDurationMs)
Called when an audio or video decoder has been initialized.
|
default void |
onDecoderInputFormatChanged(AnalyticsListener.EventTime eventTime,
int trackType,
Format format)
Called when an audio or video decoder input format changed.
|
default void |
onDownstreamFormatChanged(AnalyticsListener.EventTime eventTime,
MediaSourceEventListener.MediaLoadData mediaLoadData)
Called when the downstream format sent to the renderers changed.
|
default void |
onDrmKeysLoaded(AnalyticsListener.EventTime eventTime)
Called each time drm keys are loaded.
|
default void |
onDrmKeysRemoved(AnalyticsListener.EventTime eventTime)
Called each time offline drm keys are removed.
|
default void |
onDrmKeysRestored(AnalyticsListener.EventTime eventTime)
Called each time offline drm keys are restored.
|
default void |
onDrmSessionAcquired(AnalyticsListener.EventTime eventTime)
Called each time a drm session is acquired.
|
default void |
onDrmSessionManagerError(AnalyticsListener.EventTime eventTime,
java.lang.Exception error)
Called when a drm error occurs.
|
default void |
onDrmSessionReleased(AnalyticsListener.EventTime eventTime)
Called each time a drm session is released.
|
default void |
onDroppedVideoFrames(AnalyticsListener.EventTime eventTime,
int droppedFrames,
long elapsedMs)
Called after video frames have been dropped.
|
default void |
onLoadCanceled(AnalyticsListener.EventTime eventTime,
MediaSourceEventListener.LoadEventInfo loadEventInfo,
MediaSourceEventListener.MediaLoadData mediaLoadData)
Called when a media source canceled loading data.
|
default void |
onLoadCompleted(AnalyticsListener.EventTime eventTime,
MediaSourceEventListener.LoadEventInfo loadEventInfo,
MediaSourceEventListener.MediaLoadData mediaLoadData)
Called when a media source completed loading data.
|
default void |
onLoadError(AnalyticsListener.EventTime eventTime,
MediaSourceEventListener.LoadEventInfo loadEventInfo,
MediaSourceEventListener.MediaLoadData mediaLoadData,
java.io.IOException error,
boolean wasCanceled)
Called when a media source loading error occurred.
|
default void |
onLoadingChanged(AnalyticsListener.EventTime eventTime,
boolean isLoading)
Called when the player starts or stops loading data from a source.
|
default void |
onLoadStarted(AnalyticsListener.EventTime eventTime,
MediaSourceEventListener.LoadEventInfo loadEventInfo,
MediaSourceEventListener.MediaLoadData mediaLoadData)
Called when a media source started loading data.
|
default void |
onMediaPeriodCreated(AnalyticsListener.EventTime eventTime)
Called when a media source created a media period.
|
default void |
onMediaPeriodReleased(AnalyticsListener.EventTime eventTime)
Called when a media source released a media period.
|
default void |
onMetadata(AnalyticsListener.EventTime eventTime,
Metadata metadata)
Called when there is
Metadata associated with the current playback time. |
default void |
onPlaybackParametersChanged(AnalyticsListener.EventTime eventTime,
PlaybackParameters playbackParameters)
Called when the playback parameters changed.
|
default void |
onPlayerError(AnalyticsListener.EventTime eventTime,
ExoPlaybackException error)
Called when a fatal player error occurred.
|
default void |
onPlayerStateChanged(AnalyticsListener.EventTime eventTime,
boolean playWhenReady,
int playbackState)
Called when the player state changed.
|
default void |
onPositionDiscontinuity(AnalyticsListener.EventTime eventTime,
int reason)
Called when a position discontinuity occurred.
|
default void |
onReadingStarted(AnalyticsListener.EventTime eventTime)
Called when the player started reading a media period.
|
default void |
onRenderedFirstFrame(AnalyticsListener.EventTime eventTime,
android.view.Surface surface)
Called when a frame is rendered for the first time since setting the surface, and when a frame
is rendered for the first time since the renderer was reset.
|
default void |
onRepeatModeChanged(AnalyticsListener.EventTime eventTime,
int repeatMode)
Called when the repeat mode changed.
|
default void |
onSeekProcessed(AnalyticsListener.EventTime eventTime)
Called when a seek operation was processed.
|
default void |
onSeekStarted(AnalyticsListener.EventTime eventTime)
Called when a seek operation started.
|
default void |
onShuffleModeChanged(AnalyticsListener.EventTime eventTime,
boolean shuffleModeEnabled)
Called when the shuffle mode changed.
|
default void |
onSurfaceSizeChanged(AnalyticsListener.EventTime eventTime,
int width,
int height)
Called when the output surface size changed.
|
default void |
onTimelineChanged(AnalyticsListener.EventTime eventTime,
int reason)
Called when the timeline changed.
|
default void |
onTracksChanged(AnalyticsListener.EventTime eventTime,
TrackGroupArray trackGroups,
TrackSelectionArray trackSelections)
Called when the available or selected tracks for the renderers changed.
|
default void |
onUpstreamDiscarded(AnalyticsListener.EventTime eventTime,
MediaSourceEventListener.MediaLoadData mediaLoadData)
Called when data is removed from the back of a media buffer, typically so that it can be
re-buffered in a different format.
|
default void |
onVideoSizeChanged(AnalyticsListener.EventTime eventTime,
int width,
int height,
int unappliedRotationDegrees,
float pixelWidthHeightRatio)
Called before a frame is rendered for the first time since setting the surface, and each time
there's a change in the size or pixel aspect ratio of the video being rendered.
|
default void |
onVolumeChanged(AnalyticsListener.EventTime eventTime,
float volume)
Called when the volume changes.
|
default void onPlayerStateChanged(AnalyticsListener.EventTime eventTime, boolean playWhenReady, int playbackState)
eventTime - The event time.playWhenReady - Whether the playback will proceed when ready.playbackState - One of the Player.STATE constants.default void onTimelineChanged(AnalyticsListener.EventTime eventTime, @Player.TimelineChangeReason int reason)
eventTime - The event time.reason - The reason for the timeline change.default void onPositionDiscontinuity(AnalyticsListener.EventTime eventTime, @Player.DiscontinuityReason int reason)
eventTime - The event time.reason - The reason for the position discontinuity.default void onSeekStarted(AnalyticsListener.EventTime eventTime)
eventTime - The event time.default void onSeekProcessed(AnalyticsListener.EventTime eventTime)
eventTime - The event time.default void onPlaybackParametersChanged(AnalyticsListener.EventTime eventTime, PlaybackParameters playbackParameters)
eventTime - The event time.playbackParameters - The new playback parameters.default void onRepeatModeChanged(AnalyticsListener.EventTime eventTime, @Player.RepeatMode int repeatMode)
eventTime - The event time.repeatMode - The new repeat mode.default void onShuffleModeChanged(AnalyticsListener.EventTime eventTime, boolean shuffleModeEnabled)
eventTime - The event time.shuffleModeEnabled - Whether the shuffle mode is enabled.default void onLoadingChanged(AnalyticsListener.EventTime eventTime, boolean isLoading)
eventTime - The event time.isLoading - Whether the player is loading.default void onPlayerError(AnalyticsListener.EventTime eventTime, ExoPlaybackException error)
eventTime - The event time.error - The error.default void onTracksChanged(AnalyticsListener.EventTime eventTime, TrackGroupArray trackGroups, TrackSelectionArray trackSelections)
eventTime - The event time.trackGroups - The available tracks. May be empty.trackSelections - The track selections for each renderer. May contain null elements.default void onLoadStarted(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.LoadEventInfo loadEventInfo, MediaSourceEventListener.MediaLoadData mediaLoadData)
eventTime - The event time.loadEventInfo - The MediaSourceEventListener.LoadEventInfo defining the load event.mediaLoadData - The MediaSourceEventListener.MediaLoadData defining the data being loaded.default void onLoadCompleted(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.LoadEventInfo loadEventInfo, MediaSourceEventListener.MediaLoadData mediaLoadData)
eventTime - The event time.loadEventInfo - The MediaSourceEventListener.LoadEventInfo defining the load event.mediaLoadData - The MediaSourceEventListener.MediaLoadData defining the data being loaded.default void onLoadCanceled(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.LoadEventInfo loadEventInfo, MediaSourceEventListener.MediaLoadData mediaLoadData)
eventTime - The event time.loadEventInfo - The MediaSourceEventListener.LoadEventInfo defining the load event.mediaLoadData - The MediaSourceEventListener.MediaLoadData defining the data being loaded.default void onLoadError(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.LoadEventInfo loadEventInfo, MediaSourceEventListener.MediaLoadData mediaLoadData, java.io.IOException error, boolean wasCanceled)
eventTime - The event time.loadEventInfo - The MediaSourceEventListener.LoadEventInfo defining the load event.mediaLoadData - The MediaSourceEventListener.MediaLoadData defining the data being loaded.error - The load error.wasCanceled - Whether the load was canceled as a result of the error.default void onDownstreamFormatChanged(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.MediaLoadData mediaLoadData)
eventTime - The event time.mediaLoadData - The MediaSourceEventListener.MediaLoadData defining the newly selected media data.default void onUpstreamDiscarded(AnalyticsListener.EventTime eventTime, MediaSourceEventListener.MediaLoadData mediaLoadData)
eventTime - The event time.mediaLoadData - The MediaSourceEventListener.MediaLoadData defining the media being discarded.default void onMediaPeriodCreated(AnalyticsListener.EventTime eventTime)
eventTime - The event time.default void onMediaPeriodReleased(AnalyticsListener.EventTime eventTime)
eventTime - The event time.default void onReadingStarted(AnalyticsListener.EventTime eventTime)
eventTime - The event time.default void onBandwidthEstimate(AnalyticsListener.EventTime eventTime, int totalLoadTimeMs, long totalBytesLoaded, long bitrateEstimate)
eventTime - The event time.totalLoadTimeMs - The total time spend loading this update is based on, in milliseconds.totalBytesLoaded - The total bytes loaded this update is based on.bitrateEstimate - The bandwidth estimate, in bits per second.default void onSurfaceSizeChanged(AnalyticsListener.EventTime eventTime, int width, int height)
eventTime - The event time.width - The surface width in pixels. May be C.LENGTH_UNSET if unknown, or 0 if the
video is not rendered onto a surface.height - The surface height in pixels. May be C.LENGTH_UNSET if unknown, or 0 if
the video is not rendered onto a surface.default void onMetadata(AnalyticsListener.EventTime eventTime, Metadata metadata)
Metadata associated with the current playback time.eventTime - The event time.metadata - The metadata.default void onDecoderEnabled(AnalyticsListener.EventTime eventTime, int trackType, DecoderCounters decoderCounters)
eventTime - The event time.trackType - The track type of the enabled decoder. Either C.TRACK_TYPE_AUDIO or
C.TRACK_TYPE_VIDEO.decoderCounters - The accumulated event counters associated with this decoder.default void onDecoderInitialized(AnalyticsListener.EventTime eventTime, int trackType, java.lang.String decoderName, long initializationDurationMs)
eventTime - The event time.trackType - The track type of the initialized decoder. Either C.TRACK_TYPE_AUDIO
or C.TRACK_TYPE_VIDEO.decoderName - The decoder that was created.initializationDurationMs - Time taken to initialize the decoder, in milliseconds.default void onDecoderInputFormatChanged(AnalyticsListener.EventTime eventTime, int trackType, Format format)
eventTime - The event time.trackType - The track type of the decoder whose format changed. Either C.TRACK_TYPE_AUDIO or C.TRACK_TYPE_VIDEO.format - The new input format for the decoder.default void onDecoderDisabled(AnalyticsListener.EventTime eventTime, int trackType, DecoderCounters decoderCounters)
eventTime - The event time.trackType - The track type of the disabled decoder. Either C.TRACK_TYPE_AUDIO or
C.TRACK_TYPE_VIDEO.decoderCounters - The accumulated event counters associated with this decoder.default void onAudioSessionId(AnalyticsListener.EventTime eventTime, int audioSessionId)
eventTime - The event time.audioSessionId - The audio session id.default void onAudioAttributesChanged(AnalyticsListener.EventTime eventTime, AudioAttributes audioAttributes)
eventTime - The event time.audioAttributes - The audio attributes.default void onVolumeChanged(AnalyticsListener.EventTime eventTime, float volume)
eventTime - The event time.volume - The new volume, with 0 being silence and 1 being unity gain.default void onAudioUnderrun(AnalyticsListener.EventTime eventTime, int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs)
eventTime - The event time.bufferSize - The size of the AudioSink's buffer, in bytes.bufferSizeMs - The size of the AudioSink's buffer, in milliseconds, if it is
configured for PCM output. C.TIME_UNSET if it is configured for passthrough output,
as the buffered media can have a variable bitrate so the duration may be unknown.elapsedSinceLastFeedMs - The time since the AudioSink was last fed data.default void onDroppedVideoFrames(AnalyticsListener.EventTime eventTime, int droppedFrames, long elapsedMs)
eventTime - The event time.droppedFrames - The number of dropped frames since the last call to this method.elapsedMs - The duration in milliseconds over which the frames were dropped. This duration
is timed from when the renderer was started or from when dropped frames were last reported
(whichever was more recent), and not from when the first of the reported drops occurred.default void onVideoSizeChanged(AnalyticsListener.EventTime eventTime, int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio)
eventTime - The event time.width - The width of the video.height - The height of the video.unappliedRotationDegrees - For videos that require a rotation, this is the clockwise
rotation in degrees that the application should apply for the video for it to be rendered
in the correct orientation. This value will always be zero on API levels 21 and above,
since the renderer will apply all necessary rotations internally.pixelWidthHeightRatio - The width to height ratio of each pixel.default void onRenderedFirstFrame(AnalyticsListener.EventTime eventTime, @Nullable android.view.Surface surface)
eventTime - The event time.surface - The Surface to which a first frame has been rendered, or null if
the renderer renders to something that isn't a Surface.default void onDrmSessionAcquired(AnalyticsListener.EventTime eventTime)
eventTime - The event time.default void onDrmKeysLoaded(AnalyticsListener.EventTime eventTime)
eventTime - The event time.default void onDrmSessionManagerError(AnalyticsListener.EventTime eventTime, java.lang.Exception error)
eventTime - The event time.error - The error.default void onDrmKeysRestored(AnalyticsListener.EventTime eventTime)
eventTime - The event time.default void onDrmKeysRemoved(AnalyticsListener.EventTime eventTime)
eventTime - The event time.default void onDrmSessionReleased(AnalyticsListener.EventTime eventTime)
eventTime - The event time.