# LeanbackPlayerAdapter

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

*** ** * ** ***


```
@UnstableApi
public final class LeanbackPlayerAdapter extends PlayerAdapter implements Runnable
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.leanback.media.PlayerAdapter](https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter) ||
|   | ↳ | [androidx.media3.ui.leanback.LeanbackPlayerAdapter](https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter) |

*** ** * ** ***

Leanback `PlayerAdapter` implementation for `https://developer.android.com/reference/androidx/media3/common/Player`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#LeanbackPlayerAdapter(android.content.Context,androidx.media3.common.Player,int)( https://developer.android.com/reference/android/content/Context.html context, https://developer.android.com/reference/androidx/media3/common/Player player, int updatePeriodMs )` Builds an instance. |

| ### Public methods |
|---|---|
| `long` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#getBufferedPosition()()` Returns the current buffered position of the media item in milliseconds. |
| `long` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#getCurrentPosition()()` Returns the current position of the media item in milliseconds. |
| `long` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#getDuration()()` Returns the duration of the media item in milliseconds. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#isPlaying()()` Returns true if media is currently playing. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#isPrepared()()` |
| `void` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#onAttachedToHost(androidx.leanback.media.PlaybackGlueHost)(https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost host)` This method is called attached to associated `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost`. |
| `void` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#onDetachedFromHost()()` This method is called when current associated `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost` is attached to a different `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlue` or `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost` is destroyed. |
| `void` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#pause()()` Pauses the media player. |
| `void` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#play()()` Starts the media player. |
| `void` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#run()()` |
| `void` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#seekTo(long)(long positionInMs)` Seek to new position. |
| `void` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#setErrorMessageProvider(androidx.media3.common.ErrorMessageProvider<? super androidx.media3.common.PlaybackException>)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/ErrorMessageProvider<https://developer.android.com/reference/androidx/media3/common/PlaybackException> errorMessageProvider )` Sets the optional `https://developer.android.com/reference/androidx/media3/common/ErrorMessageProvider`. |
| `void` | `https://developer.android.com/reference/androidx/media3/ui/leanback/LeanbackPlayerAdapter#setProgressUpdatingEnabled(boolean)(boolean enable)` Implement this method to enable or disable progress updating. |

| ### Inherited methods |
|---|
| From [androidx.leanback.media.PlayerAdapter](https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter) |---|---| | `void` | `https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter#fastForward()()` Optional method. | | `final @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter.Callback` | `https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter#getCallback()()` Gets callback for event of PlayerAdapter. | | `long` | `https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter#getSupportedActions()()` Return xor combination of values defined in PlaybackBaseControlGlue. | | `void` | `https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter#next()()` Optional method. | | `void` | `https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter#previous()()` Optional method. | | `void` | `https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter#rewind()()` Optional method. | | `final void` | `https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter#setCallback(androidx.leanback.media.PlayerAdapter.Callback)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter.Callback callback)` Sets callback for event of PlayerAdapter. | | `void` | `https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter#setRepeatAction(int)(int repeatActionIndex)` Optional method. | | `void` | `https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter#setShuffleAction(int)(int shuffleActionIndex)` Optional method. | |

## Public constructors

### LeanbackPlayerAdapter

```
public LeanbackPlayerAdapter(
    Context context,
    Player player,
    int updatePeriodMs
)
```

Builds an instance. Note that the `PlayerAdapter` does not manage the lifecycle of the `https://developer.android.com/reference/androidx/media3/common/Player` instance. The caller remains responsible for releasing the player when it's no longer required.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/content/Context.html context` | The current `https://developer.android.com/reference/android/content/Context.html` (activity). |
| `https://developer.android.com/reference/androidx/media3/common/Player player` | The `https://developer.android.com/reference/androidx/media3/common/Player` being used. |
| `int updatePeriodMs` | The delay between player control updates, in milliseconds. |

## Public methods

### getBufferedPosition

```
public long getBufferedPosition()
```

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

### getCurrentPosition

```
public long getCurrentPosition()
```

Returns the current position of the media item in milliseconds.

### getDuration

```
public long getDuration()
```

Returns the duration of the media item in milliseconds.

### isPlaying

```
public boolean isPlaying()
```

Returns true if media is currently playing.

### isPrepared

```
public boolean isPrepared()
```

| Returns |
|---|---|
| `boolean` | True if media is ready for playback, false otherwise. |

### onAttachedToHost

```
public void onAttachedToHost(PlaybackGlueHost host)
```

This method is called attached to associated `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost host` |   |

### onDetachedFromHost

```
public void onDetachedFromHost()
```

This method is called when current associated `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost` is attached to a different `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlue` or `https://developer.android.com/reference/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

```
public void pause()
```

Pauses the media player.

### play

```
public void play()
```

Starts the media player.

### run

```
public void run()
```

### seekTo

```
public void seekTo(long positionInMs)
```

Seek to new position.

| Parameters |
|---|---|
| `long positionInMs` | New position in milliseconds. |

### setErrorMessageProvider

```
public void setErrorMessageProvider(
    @Nullable ErrorMessageProvider<PlaybackException> errorMessageProvider
)
```

Sets the optional `https://developer.android.com/reference/androidx/media3/common/ErrorMessageProvider`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/ErrorMessageProvider<https://developer.android.com/reference/androidx/media3/common/PlaybackException> errorMessageProvider` | The `https://developer.android.com/reference/androidx/media3/common/ErrorMessageProvider`. |

### setProgressUpdatingEnabled

```
public void setProgressUpdatingEnabled(boolean enable)
```

Implement this method to enable or disable progress updating.

| Parameters |
|---|---|
| `boolean enable` | True to enable progress updating, false otherwise. |