# MediaControllerAdapter

# MediaControllerAdapter

Artifact:[androidx.leanback:leanback](https://developer.android.com/jetpack/androidx/releases/leanback)  
[View Source](https://cs.android.com/search?q=file:androidx/leanback/media/MediaControllerAdapter.java+class:androidx.leanback.media.MediaControllerAdapter)  
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/MediaControllerAdapter "View this page in Java")

<br />

```
class MediaControllerAdapter : PlayerAdapter
```

<br />

|---|---|-------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)                                                                    |||
| ↳ | [androidx.leanback.media.PlayerAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter)                      ||
|   | ↳ | [androidx.leanback.media.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).

## Summary

|                                                                                                                                                                                                                                                 ### Public constructors                                                                                                                                                                                                                                                  |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [MediaControllerAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#MediaControllerAdapter(android.support.v4.media.session.MediaControllerCompat))`(controller: `[MediaControllerCompat](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat)`!)` Constructor for the adapter using[MediaControllerCompat](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat). |

|                                                       ### Public functions                                                        |
|-----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                     | [fastForward](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#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/MediaControllerAdapter#getBufferedPosition())`()` Returns the current buffered position of the media item in milliseconds.                                                                                                                                                                                                                                                                                                                                      |
| [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)                                                     | [getCurrentPosition](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#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/MediaControllerAdapter#getDuration())`()` Returns the duration of the media item in milliseconds.                                                                                                                                                                                                                                                                                                                                                                       |
| [Drawable](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`!`                                    | [getMediaArt](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#getMediaArt(android.content.Context))`(context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!)` Get current media's drawable art.                                                                                                                                                                                                                                                                           |
| [MediaControllerCompat](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat)`!` | [getMediaController](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#getMediaController())`()` Return the object of[MediaControllerCompat](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat)from this class.                                                                                                                                                                                                                                              |
| [CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`!`                                 | [getMediaSubtitle](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#getMediaSubtitle())`()` Get current media's subtitle.                                                                                                                                                                                                                                                                                                                                                                                       |
| [CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`!`                                 | [getMediaTitle](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#getMediaTitle())`()` Get current media's title.                                                                                                                                                                                                                                                                                                                                                                                                |
| [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)                                                     | [getSupportedActions](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#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/MediaControllerAdapter#isPlaying())`()` Returns true if media is currently playing.                                                                                                                                                                                                                                                                                                                                                                                       |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                     | [next](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#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/MediaControllerAdapter#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/MediaControllerAdapter#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. |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                     | [pause](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#pause())`()` Pauses the media player.                                                                                                                                                                                                                                                                                                                                                                                                                  |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                     | [play](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#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/MediaControllerAdapter#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/MediaControllerAdapter#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/MediaControllerAdapter#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)                                                     | [setProgressUpdatingEnabled](https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaControllerAdapter#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/MediaControllerAdapter#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/MediaControllerAdapter#setShuffleAction(int))`(shuffleActionIndex: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Optional method.                                                                                                                                                                                                                                                                                                |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ### Inherited functions                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From[androidx.leanback.media.PlayerAdapter](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter) |----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [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.                                                                                                                                                                                   | | [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)                                              | [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. | |

## Public constructors

### MediaControllerAdapter

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

```
MediaControllerAdapter(controller: MediaControllerCompat!)
```

Constructor for the adapter using[MediaControllerCompat](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat).  

|                                                                   Parameters                                                                    |
|-------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------|
| `controller: `[MediaControllerCompat](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat)`!` | Object of MediaControllerCompat.. |

## Public functions

### fastForward

```
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

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

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

### getCurrentPosition

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

Returns the current position of the media item in milliseconds.  

### getDuration

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

Returns the duration of the media item in milliseconds.  

### getMediaArt

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

```
fun getMediaArt(context: Context!): Drawable!
```

Get current media's drawable art.  

|                                            Returns                                             |
|------------------------------------------------------------------------------------------------|--------------------------------|
| [Drawable](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`!` | Drawable art of current media. |

### getMediaController

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

```
fun getMediaController(): MediaControllerCompat!
```

Return the object of[MediaControllerCompat](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat)from this class.  

|                                                              Returns                                                              |
|-----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| [MediaControllerCompat](https://developer.android.com/reference/kotlin/android/support/v4/media/session/MediaControllerCompat)`!` | Media Controller Compat object owned by this class. |

### getMediaSubtitle

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

```
fun getMediaSubtitle(): CharSequence!
```

Get current media's subtitle.  

|                                              Returns                                              |
|---------------------------------------------------------------------------------------------------|----------------------------|
| [CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`!` | Subtitle of current media. |

### getMediaTitle

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

```
fun getMediaTitle(): CharSequence!
```

Get current media's title.  

|                                              Returns                                              |
|---------------------------------------------------------------------------------------------------|-------------------------|
| [CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`!` | Title of current media. |

### getSupportedActions

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

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

### isPlaying

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

Returns true if media is currently playing.  

### next

```
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

```
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

```
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

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

Pauses the media player.  

### play

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

Starts the media player.  

### previous

```
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

```
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

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

### setProgressUpdatingEnabled

```
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

```
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

```
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()) |