MetricsCollector

This class is responsible for collecting and computing playback statistics metrics such as:

  • Stalls (count and duration)

  • Playtime

  • Bitrate (estimated and indicated)

  • Loading times (manifest, asset, source, DRM)

  • Video and audio format information

  • Dropped video frames

  • Surface size

Constructors

Link copied to clipboard
constructor(sessionManager: PlaybackSessionManager, clock: Clock)

Types

Link copied to clipboard
interface Listener

A listener interface for receiving updates about playback metrics.

Functions

Link copied to clipboard

Registers a listener to receive events.

Link copied to clipboard

Retrieves the current playback metrics.

Link copied to clipboard

Retrieves playback metrics for a given playback session.

Link copied to clipboard
open override fun onAudioDisabled(eventTime: AnalyticsListener.EventTime, decoderCounters: DecoderCounters)
Link copied to clipboard
open override fun onAudioInputFormatChanged(eventTime: AnalyticsListener.EventTime, format: Format, decoderReuseEvaluation: DecoderReuseEvaluation?)
Link copied to clipboard
open override fun onAudioPositionAdvancing(eventTime: AnalyticsListener.EventTime, playoutStartSystemTimeMs: Long)
Link copied to clipboard
open override fun onBandwidthEstimate(eventTime: AnalyticsListener.EventTime, totalLoadTimeMs: Int, totalBytesLoaded: Long, bitrateEstimate: Long)
Link copied to clipboard
open override fun onDrmKeysLoaded(eventTime: AnalyticsListener.EventTime)
Link copied to clipboard
open override fun onDrmKeysRemoved(eventTime: AnalyticsListener.EventTime)
Link copied to clipboard
open override fun onDrmKeysRestored(eventTime: AnalyticsListener.EventTime)
Link copied to clipboard
open override fun onDrmSessionAcquired(eventTime: AnalyticsListener.EventTime, state: Int)
Link copied to clipboard
Link copied to clipboard
open override fun onDroppedVideoFrames(eventTime: AnalyticsListener.EventTime, droppedFrames: Int, elapsedMs: Long)
Link copied to clipboard
open override fun onIsPlayingChanged(eventTime: AnalyticsListener.EventTime, isPlaying: Boolean)
Link copied to clipboard
open override fun onLoadCompleted(eventTime: AnalyticsListener.EventTime, loadEventInfo: LoadEventInfo, mediaLoadData: MediaLoadData)
Link copied to clipboard
open override fun onLoadError(eventTime: AnalyticsListener.EventTime, loadEventInfo: LoadEventInfo, mediaLoadData: MediaLoadData, error: IOException, wasCanceled: Boolean)
Link copied to clipboard
open override fun onLoadStarted(eventTime: AnalyticsListener.EventTime, loadEventInfo: LoadEventInfo, mediaLoadData: MediaLoadData, retryCount: Int)
Link copied to clipboard
open override fun onPlaybackStateChanged(eventTime: AnalyticsListener.EventTime, state: Int)
Link copied to clipboard
Link copied to clipboard
open override fun onPlayerReleased(eventTime: AnalyticsListener.EventTime)
Link copied to clipboard
open override fun onRenderedFirstFrame(eventTime: AnalyticsListener.EventTime, output: Any, renderTimeMs: Long)
Link copied to clipboard
open override fun onStallChanged(eventTime: AnalyticsListener.EventTime, isStall: Boolean)

Called when the player's stall state changes.

Link copied to clipboard
open override fun onSurfaceSizeChanged(eventTime: AnalyticsListener.EventTime, width: Int, height: Int)
Link copied to clipboard
open override fun onVideoDisabled(eventTime: AnalyticsListener.EventTime, decoderCounters: DecoderCounters)

On video disabled is called when releasing the player

Link copied to clipboard
open override fun onVideoInputFormatChanged(eventTime: AnalyticsListener.EventTime, format: Format, decoderReuseEvaluation: DecoderReuseEvaluation?)
Link copied to clipboard

Removes the specified listener from the list of listeners.

Inherited functions

Link copied to clipboard
Link copied to clipboard

Called when the player reaches a blocked time range.

Link copied to clipboard
open fun onChapterChanged(eventTime: AnalyticsListener.EventTime, chapter: Chapter?)

Called when the current chapter changes. This can occur when either:

Link copied to clipboard
open fun onCreditChanged(eventTime: AnalyticsListener.EventTime, credit: Credit?)

Called when the current credit changes. This can occur when either:

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Called when Pillarbox's metadata changes.

Link copied to clipboard
Link copied to clipboard
open fun onSmoothSeekingEnabledChanged(eventTime: AnalyticsListener.EventTime, smoothSeekingEnabled: Boolean)

Called when the smooth seeking enabled state changes.

Link copied to clipboard
Link copied to clipboard
open fun onTrackingEnabledChanged(eventTime: AnalyticsListener.EventTime, trackingEnabled: Boolean)

Called when the tracking enabled state changes.

Link copied to clipboard
Link copied to clipboard