# PlayerAdapter

# PlayerAdapter

Artifact:[androidx.leanback:leanback](https://developer.android.com/jetpack/androidx/releases/leanback)  
[View Source](https://cs.android.com/search?q=file:androidx/leanback/media/PlayerAdapter.java+class:androidx.leanback.media.PlayerAdapter)  
Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter "View this page in Java")

<br />

```
abstract class PlayerAdapter
```

<br />

Known direct subclasses  
[LeanbackPlayerAdapter](https://developer.android.com/reference/kotlin/androidx/media3/ui/leanback/LeanbackPlayerAdapter),[MediaControllerAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter),[MediaPlayerAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaPlayerAdapter)  

|---------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [LeanbackPlayerAdapter](https://developer.android.com/reference/kotlin/androidx/media3/ui/leanback/LeanbackPlayerAdapter) | Leanback`PlayerAdapter`implementation for[Player](https://developer.android.com/reference/kotlin/androidx/media3/common/Player).                                                                                                 |
| [MediaControllerAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter)   | A helper class for implementing a adapter layer for[MediaControllerCompat](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat).                                               |
| [MediaPlayerAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaPlayerAdapter)           | This implementation extends the[PlayerAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter)with a[MediaPlayer](https://developer.android.com/reference/android/media/MediaPlayer.html). |

*** ** * ** ***

Base class that wraps underlying media player. The class is used by PlaybackGlue, for example[PlaybackTransportControlGlue](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackTransportControlGlue)is bound to a PlayerAdapter. This class is intended to be subclassed,[MediaPlayerAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaPlayerAdapter)is a concrete subclass using[android.media.MediaPlayer](https://developer.android.com/reference/android/media/MediaPlayer.html). ExoPlayer also provides a leanback extension that implements PlayerAdapter. Please see[ExoPlayer](https://developer.android.com/guide/topics/media/exoplayer)https://developer.android.com/guide/topics/media/exoplayer

## Summary

|                                                                          ### Nested types                                                                           |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `class `[PlayerAdapter.Callback](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter.Callback) Client for client of PlayerAdapter. |

|                                                  ### Public constructors                                                  |
|---------------------------------------------------------------------------------------------------------------------------|
| [PlayerAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#PlayerAdapter())`()` |

|                                                    ### Public functions                                                    |
|----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [fastForward](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#fastForward())`()` Optional method.                                                                                                                                                                                                                                                                                                                                                                                                              |
| [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)                                              | [getBufferedPosition](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getBufferedPosition())`()` Returns the current buffered position of the media item in milliseconds.                                                                                                                                                                                                                                                                                                                                      |
| [PlayerAdapter.Callback](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter.Callback)`?` | [getCallback](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getCallback())`()` Gets callback for event of PlayerAdapter.                                                                                                                                                                                                                                                                                                                                                                                     |
| [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)                                              | [getCurrentPosition](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getCurrentPosition())`()` Returns the current position of the media item in milliseconds.                                                                                                                                                                                                                                                                                                                                                 |
| [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)                                              | [getDuration](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getDuration())`()` Returns the duration of the media item in milliseconds.                                                                                                                                                                                                                                                                                                                                                                       |
| [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)                                              | [getSupportedActions](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getSupportedActions())`()` Return xor combination of values defined in PlaybackBaseControlGlue.                                                                                                                                                                                                                                                                                                                                          |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                        | [isPlaying](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#isPlaying())`()` Returns true if media is currently playing.                                                                                                                                                                                                                                                                                                                                                                                       |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                                        | [isPrepared](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#isPrepared())`()`                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [next](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#next())`()` Optional method.                                                                                                                                                                                                                                                                                                                                                                                                                            |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [onAttachedToHost](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#onAttachedToHost(androidx.leanback.media.PlaybackGlueHost))`(host: `[PlaybackGlueHost](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost)`)` This method is called attached to associated[PlaybackGlueHost](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost).                                                                                                 |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [onDetachedFromHost](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#onDetachedFromHost())`()` This method is called when current associated[PlaybackGlueHost](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost)is attached to a different[PlaybackGlue](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue)or[PlaybackGlueHost](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost)is destroyed. |
| `abstract `[Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                   | [pause](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#pause())`()` Pauses the media player.                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `abstract `[Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                   | [play](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#play())`()` Starts the media player.                                                                                                                                                                                                                                                                                                                                                                                                                    |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [previous](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#previous())`()` Optional method.                                                                                                                                                                                                                                                                                                                                                                                                                    |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [rewind](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#rewind())`()` Optional method.                                                                                                                                                                                                                                                                                                                                                                                                                        |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [seekTo](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#seekTo(long))`(positionInMs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` Seek to new position.                                                                                                                                                                                                                                                                                                                  |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [setCallback](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#setCallback(androidx.leanback.media.PlayerAdapter.Callback))`(callback: `[PlayerAdapter.Callback](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter.Callback)`?)` Sets callback for event of PlayerAdapter.                                                                                                                                                                                                   |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [setProgressUpdatingEnabled](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#setProgressUpdatingEnabled(boolean))`(enable: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Implement this method to enable or disable progress updating.                                                                                                                                                                                                                               |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [setRepeatAction](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#setRepeatAction(int))`(repeatActionIndex: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Optional method.                                                                                                                                                                                                                                                                                                   |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                              | [setShuffleAction](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#setShuffleAction(int))`(shuffleActionIndex: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Optional method.                                                                                                                                                                                                                                                                                                |

## Public constructors

### PlayerAdapter

Added in 1.1.0  

```
PlayerAdapter()
```  

## Public functions

### fastForward

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun fastForward(): Unit
```

Optional method. Override this method if[getSupportedActions](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getSupportedActions())include[ACTION_FAST_FORWARD](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_FAST_FORWARD())to fast forward current media item.  

### getBufferedPosition

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun getBufferedPosition(): Long
```

Returns the current buffered position of the media item in milliseconds.  

### getCallback

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun getCallback(): PlayerAdapter.Callback?
```

Gets callback for event of PlayerAdapter.  

|                                                          Returns                                                           |
|----------------------------------------------------------------------------------------------------------------------------|------------------------------------|
| [PlayerAdapter.Callback](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter.Callback)`?` | Client for event of PlayerAdapter. |

### getCurrentPosition

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun getCurrentPosition(): Long
```

Returns the current position of the media item in milliseconds.  

### getDuration

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun getDuration(): Long
```

Returns the duration of the media item in milliseconds.  

### getSupportedActions

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun getSupportedActions(): Long
```

Return xor combination of values defined in PlaybackBaseControlGlue. Default is PLAY_PAUSE (unless subclass enforce to be 0)  

### isPlaying

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun isPlaying(): Boolean
```

Returns true if media is currently playing.  

### isPrepared

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun isPrepared(): Boolean
```  

|                                       Returns                                       |
|-------------------------------------------------------------------------------------|-------------------------------------------------------|
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | True if media is ready for playback, false otherwise. |

### next

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun next(): Unit
```

Optional method. Override this method if[getSupportedActions](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getSupportedActions())include[ACTION_SKIP_TO_NEXT](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_SKIP_TO_NEXT())to skip to next item.  

### onAttachedToHost

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun onAttachedToHost(host: PlaybackGlueHost): Unit
```

This method is called attached to associated[PlaybackGlueHost](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost).  

|                                                     Parameters                                                      |
|---------------------------------------------------------------------------------------------------------------------|---|
| `host: `[PlaybackGlueHost](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost) |   |

### onDetachedFromHost

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun onDetachedFromHost(): Unit
```

This method is called when current associated[PlaybackGlueHost](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost)is attached to a different[PlaybackGlue](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue)or[PlaybackGlueHost](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost)is destroyed. Subclass may override. A typical implementation will release resources (e.g. MediaPlayer or connection to playback service) in this method.  

### pause

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
abstract fun pause(): Unit
```

Pauses the media player.  

### play

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
abstract fun play(): Unit
```

Starts the media player.  

### previous

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun previous(): Unit
```

Optional method. Override this method if[getSupportedActions](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getSupportedActions())include[ACTION_SKIP_TO_PREVIOUS](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_SKIP_TO_PREVIOUS())to skip to previous item.  

### rewind

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun rewind(): Unit
```

Optional method. Override this method if[getSupportedActions](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getSupportedActions())include[ACTION_REWIND](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_REWIND())to rewind in current media item.  

### seekTo

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun seekTo(positionInMs: Long): Unit
```

Seek to new position.  

|                                          Parameters                                           |
|-----------------------------------------------------------------------------------------------|-------------------------------|
| `positionInMs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | New position in milliseconds. |

### setCallback

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun setCallback(callback: PlayerAdapter.Callback?): Unit
```

Sets callback for event of PlayerAdapter.  

|                                                               Parameters                                                               |
|----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------|
| `callback: `[PlayerAdapter.Callback](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter.Callback)`?` | Client for event of PlayerAdapter. |

### setProgressUpdatingEnabled

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun setProgressUpdatingEnabled(enable: Boolean): Unit
```

Implement this method to enable or disable progress updating.  

|                                          Parameters                                           |
|-----------------------------------------------------------------------------------------------|----------------------------------------------------|
| `enable: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | True to enable progress updating, false otherwise. |

### setRepeatAction

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun setRepeatAction(repeatActionIndex: Int): Unit
```

Optional method. Override this method if[getSupportedActions](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getSupportedActions())include[ACTION_REPEAT](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_REPEAT())to set the repeat action.  

|                                            Parameters                                            |
|--------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `repeatActionIndex: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The shuffle action. Must be one of the followings:[INDEX_ONE](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow.RepeatAction#INDEX_ONE())[INDEX_ALL](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow.RepeatAction#INDEX_ALL()),[INDEX_NONE](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow.RepeatAction#INDEX_NONE()), |

### setShuffleAction

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)  

```
fun setShuffleAction(shuffleActionIndex: Int): Unit
```

Optional method. Override this method if[getSupportedActions](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter#getSupportedActions())include[ACTION_SHUFFLE](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_SHUFFLE())to set the shuffle action.  

|                                            Parameters                                             |
|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `shuffleActionIndex: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The repeat action. Must be one of the followings:[INDEX_OFF](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow.ShuffleAction#INDEX_OFF())[INDEX_ON](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow.ShuffleAction#INDEX_ON()) |