# DrmSessionEventListener.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/drm/DrmSessionEventListener.java+class:androidx.media3.exoplayer.drm.DrmSessionEventListener.EventDispatcher)

*** ** * ** ***


```
public final class DrmSessionEventListener.EventDispatcher
```

<br />

*** ** * ** ***

Dispatches events to `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener`.

## 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/drm/DrmSessionEventListener.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/drm/DrmSessionEventListener.EventDispatcher#windowIndex()` The timeline window index reported with the events. |

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

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener.EventDispatcher#addEventListener(android.os.Handler,androidx.media3.exoplayer.drm.DrmSessionEventListener)( https://developer.android.com/reference/android/os/Handler.html handler, https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener eventListener )` Adds a listener to the event dispatcher. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener.EventDispatcher#drmKeysLoaded(androidx.media3.exoplayer.drm.KeyRequestInfo)(https://developer.android.com/reference/androidx/media3/exoplayer/drm/KeyRequestInfo keyRequestInfo)` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmKeysLoaded(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)`. and `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmKeysLoaded(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.drm.KeyRequestInfo)` |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener.EventDispatcher#drmKeysRemoved()()` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmKeysRemoved(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener.EventDispatcher#drmKeysRestored()()` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmKeysRestored(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener.EventDispatcher#drmSessionAcquired(int)(@https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSession.State int state)` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmSessionAcquired(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,int)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener.EventDispatcher#drmSessionManagerError(java.lang.Exception)(https://developer.android.com/reference/java/lang/Exception.html error)` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmSessionManagerError(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,java.lang.Exception)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener.EventDispatcher#drmSessionReleased()()` Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmSessionReleased(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener.EventDispatcher#removeEventListener(androidx.media3.exoplayer.drm.DrmSessionEventListener)(https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener eventListener)` Removes a listener from the event dispatcher. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener.EventDispatcher` | `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener.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 the provided window index and media period id. |

## 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,
    DrmSessionEventListener 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/drm/DrmSessionEventListener eventListener` | The listener to be added. |

### drmKeysLoaded

```
public void drmKeysLoaded(KeyRequestInfo keyRequestInfo)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmKeysLoaded(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)`. and `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmKeysLoaded(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,androidx.media3.exoplayer.drm.KeyRequestInfo)`

### drmKeysRemoved

```
public void drmKeysRemoved()
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmKeysRemoved(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)`.

### drmKeysRestored

```
public void drmKeysRestored()
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmKeysRestored(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)`.

### drmSessionAcquired

```
public void drmSessionAcquired(@DrmSession.State int state)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmSessionAcquired(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,int)`.

### drmSessionManagerError

```
public void drmSessionManagerError(Exception error)
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmSessionManagerError(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId,java.lang.Exception)`.

### drmSessionReleased

```
public void drmSessionReleased()
```

Dispatches `https://developer.android.com/reference/androidx/media3/exoplayer/drm/DrmSessionEventListener#onDrmSessionReleased(int,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)`.

### removeEventListener

```
public void removeEventListener(DrmSessionEventListener eventListener)
```

Removes a listener from the event dispatcher.

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

### withParameters

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

Creates a view of the event dispatcher with the provided window index and media period id.

| 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/drm/DrmSessionEventListener.EventDispatcher` | A view of the event dispatcher with the pre-configured parameters. |