---
updatedAt: 2026-07-27T09:56:59.000Z
agentTools:
  projectIndex: https://developers.dailymotion.com/v0/llms.txt
---

# Listen to events with Android SDK

Work with events to capture user interactions with the Player and trigger custom actions.

Pass object implementing interface `PlayerListener`, `VideoListener`, `AdListener` to `Dailymotion.create(...)` method to listen to Player, Video, Ad events.

Find all available events in the [Android SDK Reference](https://developers.dailymotion.com/v0/reference/android-sdk-player-events).

<br />

# Player events

To listen to [Player events](https://developers.dailymotion.com/v0/reference/android-sdk-player-events#/player-events-android), pass an object implementing `PlayerListener` interface to `Dailymotion.createPlayer(...)`.

`PlayerListener` interface provide an empty default implementation for all its method. This allows overriding / implementation of only wanted method instead of implementing all methods just for compilation sake (it also improve code readability).

```kotlin
Dailymotion.createPlayer(
    context = context,
    playerId = "MY_PLAYER_ID", // replace by desired player id
    playerSetupListener = object : Dailymotion.PlayerSetupListener {
        ....
    },
    playerListener = object : PlayerListener {
        ...
    }
)
```

<br />

For example, to listen to `onPlayerEnd` event, just implement the method `onPlayerEnd()`:

```kotlin
Dailymotion.createPlayer(
    context = context,
    playerId = "MY_PLAYER_ID", // replace by desired player id
    playerSetupListener = object : Dailymotion.PlayerSetupListener {
        ....
    },
    playerListener = object : PlayerListener {
        override fun onPlayerEnd(playerView: PlayerView) {
            // player end event
        }
    }
)
```

<br />

# Video events

To listen to [Video events](https://developers.dailymotion.com/v0/reference/android-sdk-player-events#/video-events-android), pass an object implementing `VideoListener` interface to `Dailymotion.createPlayer(...)`.

`VideoListener` interface provide an empty default implementation for all its method. This allows overriding / implementation of only wanted method instead of implementing all methods just for compilation sake (it also improve code readability).

```kotlin
Dailymotion.createPlayer(
    context = context,
    playerId = "MY_PLAYER_ID", // replace by desired player id
    playerSetupListener = object : Dailymotion.PlayerSetupListener {
        ....
    },
    videoListener = object : VideoListener {
        ...
    }
)
```

For example, to listen to `onVideoEnd` event, just implement the method `onVideoEnd()`:

```kotlin
Dailymotion.createPlayer(
    context = context,
    playerId = "MY_PLAYER_ID", // replace by desired player id
    playerSetupListener = object : Dailymotion.PlayerSetupListener {
        ....
    },
    videoListener = object : VideoListener {
        override fun onVideoEnd(playerView: PlayerView) {
            // video end event
        }
    }
)
```

<br />

# Ad events

To listen to [Ad events](https://developers.dailymotion.com/v0/reference/android-sdk-player-events#ad-events-android), pass an object implementing `AdListener` to `Dailymotion.createPlayer(...)`.

`AdListener` interface provide an empty default implementation for all its method. This allows overriding / implementation of only wanted method instead of implementing all methods just for compilation sake (it also improve code readability).

```kotlin
Dailymotion.createPlayer(
    context = context,
    playerId = "MY_PLAYER_ID", // replace by desired player id
    playerSetupListener = object : Dailymotion.PlayerSetupListener {
        ....
    },
    adListener = object : AdListener {
        ...
    }
)
```

<br />

For example, to listen to `onAdStart` event, just implement the method `onAdStart()`:

```
Dailymotion.createPlayer(
    context = context,
    playerId = "MY_PLAYER_ID", // replace by desired player id
    playerSetupListener = object : Dailymotion.PlayerSetupListener {
        ....
    },
    adListener = object : AdListener {
        override fun onAdStart(playerView: PlayerView, type: String, position: String) {
            // ad start event
        }
    }
)
```