# MediaSourceEventListener.EventDispatcher

Artifact: [androidx.media3:media3-exoplayer](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/source/MediaSourceEventListener.java+class:androidx.media3.exoplayer.source.MediaSourceEventListener.EventDispatcher)

*** ** * ** ***


```
public final class MediaSourceEventListener.EventDispatcher
```

<br />

*** ** * ** ***

Dispatches events to `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener`.

## Summary

| ### Public fields |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#mediaPeriodId()` The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` reported with the events. |
| `final int` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#windowIndex()` The timeline window index reported with the events. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#EventDispatcher()()` Creates an event dispatcher. |

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#addEventListener(android.os.Handler,androidx.media3.exoplayer.source.MediaSourceEventListener)( https://developer.android.com/reference/android/os/Handler.html handler, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener eventListener )` Adds a listener to the event dispatcher. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#dispatchEvent(java.util.function.Consumer<androidx.media3.exoplayer.source.MediaSourceEventListener>)(https://developer.android.com/reference/java/util/function/Consumer.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener> event)` Dispatches to a function that supplies a `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#downstreamFormatChanged(androidx.media3.exoplayer.source.MediaLoadData)(https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaLoadData mediaLoadData)` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onDownstreamFormatChanged(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.MediaLoadData)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#downstreamFormatChanged(int,androidx.media3.common.Format,int,java.lang.Object,long)( @https://developer.android.com/reference/androidx/media3/common/C.TrackType int trackType, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format trackFormat, @https://developer.android.com/reference/androidx/media3/common/C.SelectionReason int trackSelectionReason, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html trackSelectionData, long mediaTimeUs )` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onDownstreamFormatChanged(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.MediaLoadData)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadCanceled(androidx.media3.exoplayer.source.LoadEventInfo,int)(https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, @https://developer.android.com/reference/androidx/media3/common/C.DataType int dataType)` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCanceled(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadCanceled(androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)(https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaLoadData mediaLoadData)` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCanceled(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadCanceled(androidx.media3.exoplayer.source.LoadEventInfo,int,int,androidx.media3.common.Format,int,java.lang.Object,long,long)( https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, @https://developer.android.com/reference/androidx/media3/common/C.DataType int dataType, @https://developer.android.com/reference/androidx/media3/common/C.TrackType int trackType, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format trackFormat, @https://developer.android.com/reference/androidx/media3/common/C.SelectionReason int trackSelectionReason, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html trackSelectionData, long mediaStartTimeUs, long mediaEndTimeUs )` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCanceled(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadCompleted(androidx.media3.exoplayer.source.LoadEventInfo,int)(https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, @https://developer.android.com/reference/androidx/media3/common/C.DataType int dataType)` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCompleted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadCompleted(androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)(https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaLoadData mediaLoadData)` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCompleted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadCompleted(androidx.media3.exoplayer.source.LoadEventInfo,int,int,androidx.media3.common.Format,int,java.lang.Object,long,long)( https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, @https://developer.android.com/reference/androidx/media3/common/C.DataType int dataType, @https://developer.android.com/reference/androidx/media3/common/C.TrackType int trackType, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format trackFormat, @https://developer.android.com/reference/androidx/media3/common/C.SelectionReason int trackSelectionReason, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html trackSelectionData, long mediaStartTimeUs, long mediaEndTimeUs )` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCompleted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadError(androidx.media3.exoplayer.source.LoadEventInfo,int,java.io.IOException,boolean)( https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, @https://developer.android.com/reference/androidx/media3/common/C.DataType int dataType, https://developer.android.com/reference/java/io/IOException.html error, boolean wasCanceled )` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadError(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,java.io.IOException,boolean)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadError(androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,java.io.IOException,boolean)( https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaLoadData mediaLoadData, https://developer.android.com/reference/java/io/IOException.html error, boolean wasCanceled )` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadError(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,java.io.IOException,boolean)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadError(androidx.media3.exoplayer.source.LoadEventInfo,int,int,androidx.media3.common.Format,int,java.lang.Object,long,long,java.io.IOException,boolean)( https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, @https://developer.android.com/reference/androidx/media3/common/C.DataType int dataType, @https://developer.android.com/reference/androidx/media3/common/C.TrackType int trackType, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format trackFormat, @https://developer.android.com/reference/androidx/media3/common/C.SelectionReason int trackSelectionReason, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html trackSelectionData, long mediaStartTimeUs, long mediaEndTimeUs, https://developer.android.com/reference/java/io/IOException.html error, boolean wasCanceled )` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadError(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,java.io.IOException,boolean)`. |
| `void` | `[loadStarted](https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,int))(https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, @https://developer.android.com/reference/androidx/media3/common/C.DataType int dataType)` **This method is deprecated.** Use {link `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,int,int)` instead to pass ` retryCount`. <br /> |
| `void` | `[loadStarted](https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData))(https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaLoadData mediaLoadData)` **This method is deprecated.** Use {link `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,int)` instead to pass `retryCount`. <br /> |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,int,int)( https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, @https://developer.android.com/reference/androidx/media3/common/C.DataType int dataType, int retryCount )` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadStarted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,int)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,int)( https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaLoadData mediaLoadData, int retryCount )` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadStarted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,int)`. |
| `void` | `[loadStarted](https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,int,int,androidx.media3.common.Format,int,java.lang.Object,long,long))( https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, @https://developer.android.com/reference/androidx/media3/common/C.DataType int dataType, @https://developer.android.com/reference/androidx/media3/common/C.TrackType int trackType, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format trackFormat, @https://developer.android.com/reference/androidx/media3/common/C.SelectionReason int trackSelectionReason, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html trackSelectionData, long mediaStartTimeUs, long mediaEndTimeUs )` **This method is deprecated.** Use {link `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,int,int,androidx.media3.common.Format,int,java.lang.Object,long,long,int)` )} instead to pass `retryCount`. <br /> |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,int,int,androidx.media3.common.Format,int,java.lang.Object,long,long,int)( https://developer.android.com/reference/androidx/media3/exoplayer/source/LoadEventInfo loadEventInfo, @https://developer.android.com/reference/androidx/media3/common/C.DataType int dataType, @https://developer.android.com/reference/androidx/media3/common/C.TrackType int trackType, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format trackFormat, @https://developer.android.com/reference/androidx/media3/common/C.SelectionReason int trackSelectionReason, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html trackSelectionData, long mediaStartTimeUs, long mediaEndTimeUs, int retryCount )` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadStarted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,int)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#removeEventListener(androidx.media3.exoplayer.source.MediaSourceEventListener)(https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener eventListener)` Removes a listener from the event dispatcher. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#upstreamDiscarded(androidx.media3.exoplayer.source.MediaLoadData)(https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaLoadData mediaLoadData)` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onUpstreamDiscarded(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.MediaLoadData)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#upstreamDiscarded(int,long,long)( int trackType, long mediaStartTimeUs, long mediaEndTimeUs )` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onUpstreamDiscarded(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.MediaLoadData)`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#withParameters(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)( int windowIndex, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId )` Creates a view of the event dispatcher with pre-configured window index, media period id, and media time offset. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher` | `[withParameters](https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#withParameters(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,long))( int windowIndex, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId, long mediaTimeOffsetMs )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#withParameters(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)` instead. <br /> |

## Public fields

### mediaPeriodId

```
public final @Nullable MediaSource.MediaPeriodId mediaPeriodId
```

The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` reported with the events.

### windowIndex

```
public final int windowIndex
```

The timeline window index reported with the events.

## Public constructors

### EventDispatcher

```
public EventDispatcher()
```

Creates an event dispatcher.

## Public methods

### addEventListener

```
public void addEventListener(
    Handler handler,
    MediaSourceEventListener eventListener
)
```

Adds a listener to the event dispatcher.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/os/Handler.html handler` | A handler on the which listener events will be posted. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener eventListener` | The listener to be added. |

### dispatchEvent

```
public void dispatchEvent(Consumer<MediaSourceEventListener> event)
```

Dispatches to a function that supplies a `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener`.

### downstreamFormatChanged

```
public void downstreamFormatChanged(MediaLoadData mediaLoadData)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onDownstreamFormatChanged(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.MediaLoadData)`.

### downstreamFormatChanged

```
public void downstreamFormatChanged(
    @C.TrackType int trackType,
    @Nullable Format trackFormat,
    @C.SelectionReason int trackSelectionReason,
    @Nullable Object trackSelectionData,
    long mediaTimeUs
)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onDownstreamFormatChanged(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.MediaLoadData)`.

### loadCanceled

```
public void loadCanceled(LoadEventInfo loadEventInfo, @C.DataType int dataType)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCanceled(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`.

### loadCanceled

```
public void loadCanceled(LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCanceled(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`.

### loadCanceled

```
public void loadCanceled(
    LoadEventInfo loadEventInfo,
    @C.DataType int dataType,
    @C.TrackType int trackType,
    @Nullable Format trackFormat,
    @C.SelectionReason int trackSelectionReason,
    @Nullable Object trackSelectionData,
    long mediaStartTimeUs,
    long mediaEndTimeUs
)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCanceled(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`.

### loadCompleted

```
public void loadCompleted(LoadEventInfo loadEventInfo, @C.DataType int dataType)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCompleted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`.

### loadCompleted

```
public void loadCompleted(LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCompleted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`.

### loadCompleted

```
public void loadCompleted(
    LoadEventInfo loadEventInfo,
    @C.DataType int dataType,
    @C.TrackType int trackType,
    @Nullable Format trackFormat,
    @C.SelectionReason int trackSelectionReason,
    @Nullable Object trackSelectionData,
    long mediaStartTimeUs,
    long mediaEndTimeUs
)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadCompleted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData)`.

### loadError

```
public void loadError(
    LoadEventInfo loadEventInfo,
    @C.DataType int dataType,
    IOException error,
    boolean wasCanceled
)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadError(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,java.io.IOException,boolean)`.

### loadError

```
public void loadError(
    LoadEventInfo loadEventInfo,
    MediaLoadData mediaLoadData,
    IOException error,
    boolean wasCanceled
)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadError(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,java.io.IOException,boolean)`.

### loadError

```
public void loadError(
    LoadEventInfo loadEventInfo,
    @C.DataType int dataType,
    @C.TrackType int trackType,
    @Nullable Format trackFormat,
    @C.SelectionReason int trackSelectionReason,
    @Nullable Object trackSelectionData,
    long mediaStartTimeUs,
    long mediaEndTimeUs,
    IOException error,
    boolean wasCanceled
)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadError(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,java.io.IOException,boolean)`.

### loadStarted

```
public void [loadStarted](https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,int))(LoadEventInfo loadEventInfo, @C.DataType int dataType)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use {link `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,int,int)` instead to pass `
> retryCount`.

### loadStarted

```
public void [loadStarted](https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData))(LoadEventInfo loadEventInfo, MediaLoadData mediaLoadData)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use {link `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,int)` instead to pass `retryCount`.

### loadStarted

```
public void loadStarted(
    LoadEventInfo loadEventInfo,
    @C.DataType int dataType,
    int retryCount
)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadStarted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,int)`.

### loadStarted

```
public void loadStarted(
    LoadEventInfo loadEventInfo,
    MediaLoadData mediaLoadData,
    int retryCount
)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadStarted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,int)`.

### loadStarted

```
public void [loadStarted](https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,int,int,androidx.media3.common.Format,int,java.lang.Object,long,long))(
    LoadEventInfo loadEventInfo,
    @C.DataType int dataType,
    @C.TrackType int trackType,
    @Nullable Format trackFormat,
    @C.SelectionReason int trackSelectionReason,
    @Nullable Object trackSelectionData,
    long mediaStartTimeUs,
    long mediaEndTimeUs
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use {link `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#loadStarted(androidx.media3.exoplayer.source.LoadEventInfo,int,int,androidx.media3.common.Format,int,java.lang.Object,long,long,int)` )} instead to pass `retryCount`.

### loadStarted

```
public void loadStarted(
    LoadEventInfo loadEventInfo,
    @C.DataType int dataType,
    @C.TrackType int trackType,
    @Nullable Format trackFormat,
    @C.SelectionReason int trackSelectionReason,
    @Nullable Object trackSelectionData,
    long mediaStartTimeUs,
    long mediaEndTimeUs,
    int retryCount
)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onLoadStarted(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.LoadEventInfo,androidx.media3.exoplayer.source.MediaLoadData,int)`.

### removeEventListener

```
public void removeEventListener(MediaSourceEventListener eventListener)
```

Removes a listener from the event dispatcher.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener eventListener` | The listener to be removed. |

### upstreamDiscarded

```
public void upstreamDiscarded(MediaLoadData mediaLoadData)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onUpstreamDiscarded(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.MediaLoadData)`.

### upstreamDiscarded

```
public void upstreamDiscarded(
    int trackType,
    long mediaStartTimeUs,
    long mediaEndTimeUs
)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener#onUpstreamDiscarded(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.source.MediaLoadData)`.

### withParameters

```
public MediaSourceEventListener.EventDispatcher withParameters(
    int windowIndex,
    @Nullable MediaSource.MediaPeriodId mediaPeriodId
)
```

Creates a view of the event dispatcher with pre-configured window index, media period id, and media time offset.

| Parameters |
|---|---|
| `int windowIndex` | The timeline window index to be reported with the events. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId` | The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` to be reported with the events. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher` | A view of the event dispatcher with the pre-configured parameters. |

### withParameters

```
public MediaSourceEventListener.EventDispatcher [withParameters](https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#withParameters(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,long))(
    int windowIndex,
    @Nullable MediaSource.MediaPeriodId mediaPeriodId,
    long mediaTimeOffsetMs
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSourceEventListener.EventDispatcher#withParameters(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)` instead.

Note: The `mediaTimeOffsetMs` passed to this method is ignored and not added to media times in any way.