Package com.castlabs.android.player

# Class AbstractStreamingEventListener

java.lang.Object
com.castlabs.android.player.AbstractStreamingEventListener

All Implemented Interfaces:
  `StreamingEventListener`

public abstract class AbstractStreamingEventListener extends Object implements StreamingEventListener
Abstract implementation of the `StreamingEventListener`. All methods of the the `StreamingEventListener` are implemented with empty bodies and you can extend this class if you only need to implement a subset of the callbacks. Using this abstract class instead of the interface might also simplify updates of the API.

*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.

Since:
  3.1.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractStreamingEventListener()`
  Default constructor for AbstractStreamingEventListener.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `onLoadCanceled(com.google.android.exoplayer2.upstream.DataSpec dataSpec, int dataType, int trackType, int trigger, com.google.android.exoplayer2.Format format, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long bytesLoaded, long loadDurationMs, int currentAttempt, int maxAttempts, Map<String,List<String>> responseHeaders)`
  Invoked when the current upstream load operation is canceled.
  `void`
  `onLoadCompleted(com.google.android.exoplayer2.upstream.DataSpec dataSpec, int type, int trackType, int trigger, com.google.android.exoplayer2.Format format, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long bytesLoaded, long loadDurationMs, int currentAttempt, int maxAttempts, Map<String,List<String>> responseHeaders)`
  Invoked when a load operation completes.
  `void`
  `onLoadError(com.google.android.exoplayer2.upstream.DataSpec dataSpec, int dataType, int trackType, int trigger, com.google.android.exoplayer2.Format format, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long bytesLoaded, long loadDurationMs, int currentAttempt, int maxAttempts, Map<String,List<String>> responseHeaders, DownloadException downloadException)`
  Invoked when the current upstream load operation fails.
  `void`
  `onLoadStarted(com.google.android.exoplayer2.upstream.DataSpec dataSpec, int type, int trackType, int trigger, com.google.android.exoplayer2.Format format, long mediaStartTimeMs, long mediaEndTimeMs, int currentAttempt, int maxAttempts, Map<String,List<String>> responseHeaders)`
  Invoked when an upstream load is started.
  `void`
  `onUpstreamDiscarded(int trackType, long mediaStartTimeMs, long mediaEndTimeMs)`
  Invoked when data is removed from the back of the buffer, typically so that it can be re-buffered using a different representation.

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### AbstractStreamingEventListener

    public AbstractStreamingEventListener()
    Default constructor for AbstractStreamingEventListener.

- ## Method Details

  - ### onLoadCompleted

    public void onLoadCompleted(@NonNull com.google.android.exoplayer2.upstream.DataSpec dataSpec, int type, int trackType, int trigger, @Nullable com.google.android.exoplayer2.Format format, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long bytesLoaded, long loadDurationMs, int currentAttempt, int maxAttempts, Map<String,List<String>> responseHeaders)
    Description copied from interface: `StreamingEventListener`
    Invoked when a load operation completes.
    Specified by:
      `onLoadCompleted` in interface `StreamingEventListener`
    Parameters:
      `dataSpec` - Defines the data being loaded.
      `type` - One of the `C` `DATA_TYPE_*` constants defining the type of data being loaded.
      `trackType` - The type of the track that triggered the load. One of `PlayerController.VIDEO_RENDERER`, `PlayerController.AUDIO_RENDERER`, or `PlayerController.TEXT_RENDERER` or -1 if not specified
      `trigger` - One of the `C` `SELECTION_REASON_*` constants if the data belongs to a track. `C.SELECTION_REASON_UNKNOWN` otherwise.
      `format` - The particular format to which this data corresponds, or null if the loaded data does not correspond to a format.
      `mediaStartTimeMs` - The media time of the start of the loaded data, or -1 if this load was for initialization data.
      `mediaEndTimeMs` - The media time of the end of the loaded data, or -1 if this load was for initialization data.
      `elapsedRealtimeMs` - `elapsedRealtime` timestamp of when the load finished.
      `bytesLoaded` - The number of bytes that were loaded.
      `loadDurationMs` - Amount of time taken to load the data.
      `currentAttempt` - The attempt number for the load operation.
      `maxAttempts` - Maximum number of attempts for the load operation.
      `responseHeaders` - The response headers

  - ### onLoadStarted

    public void onLoadStarted(@NonNull com.google.android.exoplayer2.upstream.DataSpec dataSpec, int type, int trackType, int trigger, @Nullable com.google.android.exoplayer2.Format format, long mediaStartTimeMs, long mediaEndTimeMs, int currentAttempt, int maxAttempts, Map<String,List<String>> responseHeaders)
    Description copied from interface: `StreamingEventListener`
    Invoked when an upstream load is started.
    Specified by:
      `onLoadStarted` in interface `StreamingEventListener`
    Parameters:
      `dataSpec` - Defines the data being loaded.
      `type` - One of the `C` `DATA_TYPE_*` constants defining the type of data being loaded.
      `trackType` - The type of the track that triggered the load. One of `PlayerController.VIDEO_RENDERER`, `PlayerController.AUDIO_RENDERER`, or `PlayerController.TEXT_RENDERER` or -1 if not specified
      `trigger` - One of the `C` `SELECTION_REASON_*` constants if the data belongs to a track. `C.SELECTION_REASON_UNKNOWN` otherwise.
      `format` - The particular format to which this data corresponds, or null if the loaded data does not correspond to a format.
      `mediaStartTimeMs` - The media time of the start of the loaded data, or -1 if this load was for initialization data.
      `mediaEndTimeMs` - The media time of the end of the loaded data, or -1 if this load was for
      `currentAttempt` - The attempt number for the load operation.
      `maxAttempts` - Maximum number of attempts for the load operation.
      `responseHeaders` - The response headers

  - ### onLoadCanceled

    public void onLoadCanceled(@NonNull com.google.android.exoplayer2.upstream.DataSpec dataSpec, int dataType, int trackType, int trigger, @Nullable com.google.android.exoplayer2.Format format, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long bytesLoaded, long loadDurationMs, int currentAttempt, int maxAttempts, Map<String,List<String>> responseHeaders)
    Description copied from interface: `StreamingEventListener`
    Invoked when the current upstream load operation is canceled.
    Specified by:
      `onLoadCanceled` in interface `StreamingEventListener`
    Parameters:
      `dataSpec` - Defines the data being loaded.
      `dataType` - One of the `C` `DATA_TYPE_*` constants defining the type of data being loaded.
      `trackType` - The type of the track that triggered the load. One of `PlayerController.VIDEO_RENDERER`, `PlayerController.AUDIO_RENDERER`, or `PlayerController.TEXT_RENDERER` or -1 if not specified
      `trigger` - One of the `C` `SELECTION_REASON_*` constants if the data belongs to a track. `C.SELECTION_REASON_UNKNOWN` otherwise.
      `format` - The particular format to which this data corresponds, or null if the loaded data does not correspond to a format.
      `mediaStartTimeMs` - The media time of the start of the loaded data, or -1 if this load was for initialization data.
      `mediaEndTimeMs` - The media time of the end of the loaded data, or -1 if this load was for initialization data.
      `elapsedRealtimeMs` - `elapsedRealtime` timestamp of when the load finished.
      `bytesLoaded` - The number of bytes that were loaded.
      `loadDurationMs` - Amount of time taken to load the data.
      `currentAttempt` - The attempt number for the load operation.
      `maxAttempts` - Maximum number of attempts for the load operation.
      `responseHeaders` - The response headers

  - ### onLoadError

    public void onLoadError(@NonNull com.google.android.exoplayer2.upstream.DataSpec dataSpec, int dataType, int trackType, int trigger, @Nullable com.google.android.exoplayer2.Format format, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long bytesLoaded, long loadDurationMs, int currentAttempt, int maxAttempts, Map<String,List<String>> responseHeaders, @Nullable DownloadException downloadException)
    Description copied from interface: `StreamingEventListener`
    Invoked when the current upstream load operation fails.
    Specified by:
      `onLoadError` in interface `StreamingEventListener`
    Parameters:
      `dataSpec` - Defines the data being loaded.
      `dataType` - One of the `C` `DATA_TYPE_*` constants defining the type of data being loaded.
      `trackType` - The type of the track that triggered the load. One of `PlayerController.VIDEO_RENDERER`, `PlayerController.AUDIO_RENDERER`, or `PlayerController.TEXT_RENDERER` or -1 if not specified
      `trigger` - One of the `C` `SELECTION_REASON_*` constants if the data belongs to a track. `C.SELECTION_REASON_UNKNOWN` otherwise.
      `format` - The particular format to which this data corresponds, or null if the loaded data does not correspond to a format.
      `mediaStartTimeMs` - The media time of the start of the loaded data, or -1 if this load was for initialization data.
      `mediaEndTimeMs` - The media time of the end of the loaded data, or -1 if this load was for initialization data.
      `elapsedRealtimeMs` - `elapsedRealtime` timestamp of when the load finished.
      `bytesLoaded` - The number of bytes that were loaded.
      `loadDurationMs` - Amount of time taken to load the data.
      `currentAttempt` - The attempt number for the load operation.
      `maxAttempts` - Maximum number of attempts for the load operation.
      `responseHeaders` - The response headers
      `downloadException` - (optional) Download exception that caused the error. If present, the cause refers to the underlying IOException and if available, the http status code will be exposed here.

  - ### onUpstreamDiscarded

    public void onUpstreamDiscarded(int trackType, long mediaStartTimeMs, long mediaEndTimeMs)
    Description copied from interface: `StreamingEventListener`
    Invoked when data is removed from the back of the buffer, typically so that it can be re-buffered using a different representation.
    Specified by:
      `onUpstreamDiscarded` in interface `StreamingEventListener`
    Parameters:
      `trackType` - The type of the track that triggered the load. One of `PlayerController.VIDEO_RENDERER`, `PlayerController.AUDIO_RENDERER`, or `PlayerController.TEXT_RENDERER`
      `mediaStartTimeMs` - The media time of the start of the discarded data.
      `mediaEndTimeMs` - The media time of the end of the discarded data.