-
- All Implemented Interfaces:
-
android.media.MediaPlayer.OnBufferingUpdateListener,android.media.MediaPlayer.OnCompletionListener,android.media.MediaPlayer.OnErrorListener,android.media.MediaPlayer.OnPreparedListener,android.media.MediaPlayer.OnSeekCompleteListener,com.getstream.sdk.chat.utils.exomedia.core.listener.ExoPlayerListener,com.getstream.sdk.chat.utils.exomedia.core.listener.MetadataListener,com.getstream.sdk.chat.utils.exomedia.listener.OnBufferUpdateListener,com.getstream.sdk.chat.utils.exomedia.listener.OnSeekCompletionListener,com.google.android.exoplayer2.analytics.AnalyticsListener
public class ListenerMux implements ExoPlayerListener, MediaPlayer.OnPreparedListener, MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener, MediaPlayer.OnBufferingUpdateListener, MediaPlayer.OnSeekCompleteListener, OnBufferUpdateListener, MetadataListener, AnalyticsListener
An internal Listener that implements the listeners for the ExoMediaPlayer, Android VideoView, and the Android MediaPlayer to output to the correct error listeners.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public abstract classListenerMux.Notifier
-
Field Summary
Fields Modifier and Type Field Description private MetadataListenermetadataListenerprivate AnalyticsListeneranalyticsListenerprivate booleannotifiedPreparedprivate booleannotifiedCompleted
-
Constructor Summary
Constructors Constructor Description ListenerMux(ListenerMux.Notifier notifier)
-
Method Summary
Modifier and Type Method Description voidonBufferingUpdate(MediaPlayer mp, int percent)voidonCompletion(MediaPlayer mp)booleanonError(MediaPlayer mp, int what, int extra)voidonSeekComplete(MediaPlayer mp)voidonPrepared(MediaPlayer mp)voidonError(ExoMediaPlayer exoMediaPlayer, Exception e)voidonStateChanged(boolean playWhenReady, int playbackState)voidonSeekComplete()Called to indicate the completion of a seek operation. voidonBufferingUpdate(int percent)Called to update status in buffering a media stream. voidonMetadata(Metadata metadata)Called each time there is a metadata associated with current playback time. voidonVideoSizeChanged(int width, int height, int unAppliedRotationDegrees, float pixelWidthHeightRatio)voidonPlayerStateChanged(AnalyticsListener.EventTime eventTime, boolean playWhenReady, int playbackState)voidonTimelineChanged(AnalyticsListener.EventTime eventTime, int reason)voidonPositionDiscontinuity(AnalyticsListener.EventTime eventTime, int reason)voidonSeekStarted(AnalyticsListener.EventTime eventTime)voidonSeekProcessed(AnalyticsListener.EventTime eventTime)voidonPlaybackParametersChanged(AnalyticsListener.EventTime eventTime, PlaybackParameters playbackParameters)voidonRepeatModeChanged(AnalyticsListener.EventTime eventTime, int repeatMode)voidonShuffleModeChanged(AnalyticsListener.EventTime eventTime, boolean shuffleModeEnabled)voidonLoadingChanged(AnalyticsListener.EventTime eventTime, boolean isLoading)voidonPlayerError(AnalyticsListener.EventTime eventTime, ExoPlaybackException error)voidonTracksChanged(AnalyticsListener.EventTime eventTime, TrackGroupArray trackGroups, TrackSelectionArray trackSelections)voidonLoadStarted(AnalyticsListener.EventTime eventTime, LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData)voidonLoadCompleted(AnalyticsListener.EventTime eventTime, LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData)voidonLoadCanceled(AnalyticsListener.EventTime eventTime, LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData)voidonLoadError(AnalyticsListener.EventTime eventTime, LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData, IOException error, boolean wasCanceled)voidonDownstreamFormatChanged(AnalyticsListener.EventTime eventTime, MediaLoadData mediaLoadData)voidonUpstreamDiscarded(AnalyticsListener.EventTime eventTime, MediaLoadData mediaLoadData)voidonBandwidthEstimate(AnalyticsListener.EventTime eventTime, int totalLoadTimeMs, long totalBytesLoaded, long bitrateEstimate)voidonSurfaceSizeChanged(AnalyticsListener.EventTime eventTime, int width, int height)voidonVolumeChanged(AnalyticsListener.EventTime eventTime, float volume)voidonDrmSessionAcquired(AnalyticsListener.EventTime eventTime)voidonDrmSessionReleased(AnalyticsListener.EventTime eventTime)voidonAudioAttributesChanged(AnalyticsListener.EventTime eventTime, AudioAttributes audioAttributes)voidonMetadata(AnalyticsListener.EventTime eventTime, Metadata metadata)voidonDecoderEnabled(AnalyticsListener.EventTime eventTime, int trackType, DecoderCounters decoderCounters)voidonDecoderInitialized(AnalyticsListener.EventTime eventTime, int trackType, String decoderName, long initializationDurationMs)voidonDecoderInputFormatChanged(AnalyticsListener.EventTime eventTime, int trackType, Format format)voidonDecoderDisabled(AnalyticsListener.EventTime eventTime, int trackType, DecoderCounters decoderCounters)voidonAudioSessionId(AnalyticsListener.EventTime eventTime, int audioSessionId)voidonAudioUnderrun(AnalyticsListener.EventTime eventTime, int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs)voidonDroppedVideoFrames(AnalyticsListener.EventTime eventTime, int droppedFrames, long elapsedMs)voidonVideoSizeChanged(AnalyticsListener.EventTime eventTime, int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio)voidonRenderedFirstFrame(AnalyticsListener.EventTime eventTime, Surface surface)voidonDrmKeysLoaded(AnalyticsListener.EventTime eventTime)voidonDrmSessionManagerError(AnalyticsListener.EventTime eventTime, Exception error)voidonDrmKeysRestored(AnalyticsListener.EventTime eventTime)voidonDrmKeysRemoved(AnalyticsListener.EventTime eventTime)voidclearSurfaceWhenReady(ClearableSurface clearableSurface)Specifies the surface to clear when the playback reaches an appropriate state. voidsetOnPreparedListener(OnPreparedListener listener)Sets the listener to inform of VideoPlayer prepared events voidsetOnCompletionListener(OnCompletionListener listener)Sets the listener to inform of VideoPlayer completion events voidsetOnBufferUpdateListener(OnBufferUpdateListener listener)Sets the listener to inform of buffering updates voidsetOnSeekCompletionListener(OnSeekCompletionListener listener)Sets the listener to inform of VideoPlayer seek completion events voidsetOnErrorListener(OnErrorListener listener)Sets the listener to inform of playback errors booleanisPrepared()Retrieves if the player was prepared voidsetMetadataListener(MetadataListener listener)Sets the listener to inform of ID3 metadata updates voidsetAnalyticsListener(AnalyticsListener listener)Sets the listener to inform of Analytics updates voidsetNotifiedPrepared(boolean wasNotified)Sets weather the listener was notified when we became prepared. voidsetNotifiedCompleted(boolean wasNotified)Sets weather the listener was notified when the playback was completed (played through the end). -
Methods inherited from class android.media.MediaPlayer.OnPreparedListener
onPrepared -
Methods inherited from class android.media.MediaPlayer.OnCompletionListener
onCompletion -
Methods inherited from class android.media.MediaPlayer.OnErrorListener
onError -
Methods inherited from class android.media.MediaPlayer.OnBufferingUpdateListener
onBufferingUpdate -
Methods inherited from class android.media.MediaPlayer.OnSeekCompleteListener
onSeekComplete -
Methods inherited from class com.google.android.exoplayer2.analytics.AnalyticsListener
onAudioAttributesChanged, onAudioDecoderInitialized, onAudioDisabled, onAudioEnabled, onAudioInputFormatChanged, onAudioPositionAdvancing, onAudioSessionId, onAudioUnderrun, onBandwidthEstimate, onDecoderDisabled, onDecoderEnabled, onDecoderInitialized, onDecoderInputFormatChanged, onDownstreamFormatChanged, onDrmKeysLoaded, onDrmKeysRemoved, onDrmKeysRestored, onDrmSessionAcquired, onDrmSessionManagerError, onDrmSessionReleased, onDroppedVideoFrames, onIsLoadingChanged, onIsPlayingChanged, onLoadCanceled, onLoadCompleted, onLoadError, onLoadStarted, onLoadingChanged, onMediaItemTransition, onMetadata, onPlayWhenReadyChanged, onPlaybackParametersChanged, onPlaybackStateChanged, onPlaybackSuppressionReasonChanged, onPlayerError, onPlayerStateChanged, onPositionDiscontinuity, onRenderedFirstFrame, onRepeatModeChanged, onSeekProcessed, onSeekStarted, onShuffleModeChanged, onSkipSilenceEnabledChanged, onSurfaceSizeChanged, onTimelineChanged, onTracksChanged, onUpstreamDiscarded, onVideoDecoderInitialized, onVideoDisabled, onVideoEnabled, onVideoFrameProcessingOffset, onVideoInputFormatChanged, onVideoSizeChanged, onVolumeChanged -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Constructor Detail
-
ListenerMux
ListenerMux(ListenerMux.Notifier notifier)
-
-
Method Detail
-
onBufferingUpdate
void onBufferingUpdate(MediaPlayer mp, int percent)
-
onCompletion
void onCompletion(MediaPlayer mp)
-
onError
boolean onError(MediaPlayer mp, int what, int extra)
-
onSeekComplete
void onSeekComplete(MediaPlayer mp)
-
onPrepared
void onPrepared(MediaPlayer mp)
-
onError
void onError(ExoMediaPlayer exoMediaPlayer, Exception e)
-
onStateChanged
void onStateChanged(boolean playWhenReady, int playbackState)
-
onSeekComplete
void onSeekComplete()
Called to indicate the completion of a seek operation.
-
onBufferingUpdate
void onBufferingUpdate(int percent)
Called to update status in buffering a media stream. The received buffering percentage indicates how much of the content has been buffered or played. For example a buffering update of 80 percent when half the content has already been played indicates that the next 30 percent of the content to play has been buffered.
- Parameters:
percent- The integer percent that is buffered [0, 100] inclusive
-
onMetadata
void onMetadata(Metadata metadata)
Called each time there is a metadata associated with current playback time.
- Parameters:
metadata- The metadata.
-
onVideoSizeChanged
void onVideoSizeChanged(int width, int height, int unAppliedRotationDegrees, float pixelWidthHeightRatio)
-
onPlayerStateChanged
void onPlayerStateChanged(AnalyticsListener.EventTime eventTime, boolean playWhenReady, int playbackState)
-
onTimelineChanged
void onTimelineChanged(AnalyticsListener.EventTime eventTime, int reason)
-
onPositionDiscontinuity
void onPositionDiscontinuity(AnalyticsListener.EventTime eventTime, int reason)
-
onSeekStarted
void onSeekStarted(AnalyticsListener.EventTime eventTime)
-
onSeekProcessed
void onSeekProcessed(AnalyticsListener.EventTime eventTime)
-
onPlaybackParametersChanged
void onPlaybackParametersChanged(AnalyticsListener.EventTime eventTime, PlaybackParameters playbackParameters)
-
onRepeatModeChanged
void onRepeatModeChanged(AnalyticsListener.EventTime eventTime, int repeatMode)
-
onShuffleModeChanged
void onShuffleModeChanged(AnalyticsListener.EventTime eventTime, boolean shuffleModeEnabled)
-
onLoadingChanged
void onLoadingChanged(AnalyticsListener.EventTime eventTime, boolean isLoading)
-
onPlayerError
void onPlayerError(AnalyticsListener.EventTime eventTime, ExoPlaybackException error)
-
onTracksChanged
void onTracksChanged(AnalyticsListener.EventTime eventTime, TrackGroupArray trackGroups, TrackSelectionArray trackSelections)
-
onLoadStarted
void onLoadStarted(AnalyticsListener.EventTime eventTime, LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData)
-
onLoadCompleted
void onLoadCompleted(AnalyticsListener.EventTime eventTime, LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData)
-
onLoadCanceled
void onLoadCanceled(AnalyticsListener.EventTime eventTime, LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData)
-
onLoadError
void onLoadError(AnalyticsListener.EventTime eventTime, LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData, IOException error, boolean wasCanceled)
-
onDownstreamFormatChanged
void onDownstreamFormatChanged(AnalyticsListener.EventTime eventTime, MediaLoadData mediaLoadData)
-
onUpstreamDiscarded
void onUpstreamDiscarded(AnalyticsListener.EventTime eventTime, MediaLoadData mediaLoadData)
-
onBandwidthEstimate
void onBandwidthEstimate(AnalyticsListener.EventTime eventTime, int totalLoadTimeMs, long totalBytesLoaded, long bitrateEstimate)
-
onSurfaceSizeChanged
void onSurfaceSizeChanged(AnalyticsListener.EventTime eventTime, int width, int height)
-
onVolumeChanged
void onVolumeChanged(AnalyticsListener.EventTime eventTime, float volume)
-
onDrmSessionAcquired
void onDrmSessionAcquired(AnalyticsListener.EventTime eventTime)
-
onDrmSessionReleased
void onDrmSessionReleased(AnalyticsListener.EventTime eventTime)
-
onAudioAttributesChanged
void onAudioAttributesChanged(AnalyticsListener.EventTime eventTime, AudioAttributes audioAttributes)
-
onMetadata
void onMetadata(AnalyticsListener.EventTime eventTime, Metadata metadata)
-
onDecoderEnabled
void onDecoderEnabled(AnalyticsListener.EventTime eventTime, int trackType, DecoderCounters decoderCounters)
-
onDecoderInitialized
void onDecoderInitialized(AnalyticsListener.EventTime eventTime, int trackType, String decoderName, long initializationDurationMs)
-
onDecoderInputFormatChanged
void onDecoderInputFormatChanged(AnalyticsListener.EventTime eventTime, int trackType, Format format)
-
onDecoderDisabled
void onDecoderDisabled(AnalyticsListener.EventTime eventTime, int trackType, DecoderCounters decoderCounters)
-
onAudioSessionId
void onAudioSessionId(AnalyticsListener.EventTime eventTime, int audioSessionId)
-
onAudioUnderrun
void onAudioUnderrun(AnalyticsListener.EventTime eventTime, int bufferSize, long bufferSizeMs, long elapsedSinceLastFeedMs)
-
onDroppedVideoFrames
void onDroppedVideoFrames(AnalyticsListener.EventTime eventTime, int droppedFrames, long elapsedMs)
-
onVideoSizeChanged
void onVideoSizeChanged(AnalyticsListener.EventTime eventTime, int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio)
-
onRenderedFirstFrame
void onRenderedFirstFrame(AnalyticsListener.EventTime eventTime, Surface surface)
-
onDrmKeysLoaded
void onDrmKeysLoaded(AnalyticsListener.EventTime eventTime)
-
onDrmSessionManagerError
void onDrmSessionManagerError(AnalyticsListener.EventTime eventTime, Exception error)
-
onDrmKeysRestored
void onDrmKeysRestored(AnalyticsListener.EventTime eventTime)
-
onDrmKeysRemoved
void onDrmKeysRemoved(AnalyticsListener.EventTime eventTime)
-
clearSurfaceWhenReady
void clearSurfaceWhenReady(ClearableSurface clearableSurface)
Specifies the surface to clear when the playback reaches an appropriate state. Once the
clearableSurfaceis cleared, the reference will be removed- Parameters:
clearableSurface- The to clear when the playback reaches an appropriate state
-
setOnPreparedListener
void setOnPreparedListener(OnPreparedListener listener)
Sets the listener to inform of VideoPlayer prepared events
- Parameters:
listener- The listener to inform
-
setOnCompletionListener
void setOnCompletionListener(OnCompletionListener listener)
Sets the listener to inform of VideoPlayer completion events
- Parameters:
listener- The listener to inform
-
setOnBufferUpdateListener
void setOnBufferUpdateListener(OnBufferUpdateListener listener)
Sets the listener to inform of buffering updates
- Parameters:
listener- The listener to inform
-
setOnSeekCompletionListener
void setOnSeekCompletionListener(OnSeekCompletionListener listener)
Sets the listener to inform of VideoPlayer seek completion events
- Parameters:
listener- The listener to inform
-
setOnErrorListener
void setOnErrorListener(OnErrorListener listener)
Sets the listener to inform of playback errors
- Parameters:
listener- The listener to inform
-
isPrepared
boolean isPrepared()
Retrieves if the player was prepared
-
setMetadataListener
void setMetadataListener(MetadataListener listener)
Sets the listener to inform of ID3 metadata updates
- Parameters:
listener- The listener to inform
-
setAnalyticsListener
void setAnalyticsListener(AnalyticsListener listener)
Sets the listener to inform of Analytics updates
- Parameters:
listener- The listener to inform
-
setNotifiedPrepared
void setNotifiedPrepared(boolean wasNotified)
Sets weather the listener was notified when we became prepared.
- Parameters:
wasNotified- True if the onPreparedListener was already notified
-
setNotifiedCompleted
void setNotifiedCompleted(boolean wasNotified)
Sets weather the listener was notified when the playback was completed (played through the end).
- Parameters:
wasNotified- True if the onCompletionListener was already notified
-
-
-
-