# PlaybackBannerControlGlue

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

*** ** * ** ***


```
class PlaybackBannerControlGlue<T : PlayerAdapter?> : PlaybackBaseControlGlue<T!>
```

<br />

|---|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) ||||
| ↳ | [androidx.leanback.media.PlaybackGlue](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue) |||
|   | ↳ | [androidx.leanback.media.PlaybackBaseControlGlue](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue)\<T!\> ||
|   |   | ↳ | [androidx.leanback.media.PlaybackBannerControlGlue](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue) |

*** ** * ** ***

A helper class for managing a `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow` being displayed in `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost`. It supports standard playback control actions play/pause and skip next/previous. This helper class is a glue layer that manages interaction between the leanback UI components `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow``https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRowPresenter` and a functional `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter` which represents the underlying media player.

Apps must pass a `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter` in the constructor for a specific implementation e.g. a `https://developer.android.com/reference/kotlin/androidx/leanback/media/MediaPlayerAdapter`.

The glue has two action bars: primary action bars and secondary action bars. Apps can provide additional actions by overriding `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#onCreatePrimaryActions(androidx.leanback.widget.ArrayObjectAdapter)` and / or `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onCreateSecondaryActions(androidx.leanback.widget.ArrayObjectAdapter)` and respond to actions by overriding `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#onActionClicked(androidx.leanback.widget.Action)`.

The subclass is responsible for implementing the "repeat mode" in `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#onPlayCompleted()`.
Sample Code:

```kotlin
public class MyVideoFragment extends VideoFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        PlaybackBannerControlGlueplayerGlue =
                new PlaybackBannerControlGlue(getActivity(),
                        new MediaPlayerAdapter(getActivity()));
        playerGlue.setHost(new VideoFragmentGlueHost(this));
        playerGlue.setSubtitle("Leanback artist");
        playerGlue.setTitle("Leanback team at work");
        String uriPath = "android.resource://com.example.android.leanback/raw/video";
        playerGlue.getPlayerAdapter().setDataSource(Uri.parse(uriPath));
        playerGlue.playWhenPrepared();
    }
}
```

| Parameters |
|---|---|
| `<T : https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter?>` | Type of `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter` passed in constructor. |

## Summary

| ### Constants |
|---|---|
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#ACTION_CUSTOM_LEFT_FIRST() = 1` The adapter key for the first custom control on the left side of the predefined primary controls. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#ACTION_CUSTOM_RIGHT_FIRST() = 4096` The adapter key for the first custom control on the right side of the predefined primary controls. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#ACTION_FAST_FORWARD() = 128` The adapter key for the fast forward control. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#ACTION_PLAY_PAUSE() = 64` The adapter key for the play/pause control. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#ACTION_REWIND() = 32` The adapter key for the rewind control. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#ACTION_SKIP_TO_NEXT() = 256` The adapter key for the skip to next control. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#ACTION_SKIP_TO_PREVIOUS() = 16` The adapter key for the skip to previous control. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#PLAYBACK_SPEED_FAST_L0() = 10` The initial (level 0) fast forward playback speed. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#PLAYBACK_SPEED_FAST_L1() = 11` The level 1 fast forward playback speed. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#PLAYBACK_SPEED_FAST_L2() = 12` The level 2 fast forward playback speed. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#PLAYBACK_SPEED_FAST_L3() = 13` The level 3 fast forward playback speed. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#PLAYBACK_SPEED_FAST_L4() = 14` The level 4 fast forward playback speed. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#PLAYBACK_SPEED_INVALID() = -1` Invalid playback speed. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#PLAYBACK_SPEED_NORMAL() = 1` Speed representing playback state that is playing normally. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#PLAYBACK_SPEED_PAUSED() = 0` Speed representing playback state that is paused. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#PlaybackBannerControlGlue(android.content.Context,int[],T)( context: https://developer.android.com/reference/android/content/Context.html, seekSpeeds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>, impl: T! )` Constructor for the glue. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#PlaybackBannerControlGlue(android.content.Context,int[],int[],T)( context: https://developer.android.com/reference/android/content/Context.html, fastForwardSpeeds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>, rewindSpeeds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>, impl: T! )` Constructor for the glue. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#getCurrentPosition()()` Gets current position of the player. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#getFastForwardSpeeds()()` Returns the fast forward speeds. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#getRewindSpeeds()()` Returns the rewind speeds. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#onActionClicked(androidx.leanback.widget.Action)(action: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Action)` Handles action clicks. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#onKey(android.view.View,int,android.view.KeyEvent)(v: https://developer.android.com/reference/android/view/View.html!, keyCode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, event: https://developer.android.com/reference/android/view/KeyEvent.html!)` Handles key events and returns true if handled. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#pause()()` Pauses the media player. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#play()()` Starts the media player. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#setControlsRow(androidx.leanback.widget.PlaybackControlsRow)(controlsRow: https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow)` Sets the controls row to be managed by the glue layer. |

| ### Protected functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#onCreatePrimaryActions(androidx.leanback.widget.ArrayObjectAdapter)(primaryActionsAdapter: https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter)` May be overridden to add primary actions to the adapter. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackRowPresenter` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#onCreateRowPresenter()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#onPlayCompleted()()` Event when play finishes, subclass may handling repeat mode here. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBannerControlGlue#onPlayStateChanged()()` Event when play state changed. |

### Inherited Constants

From [androidx.leanback.media.PlaybackBaseControlGlue](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue) `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_CUSTOM_LEFT_FIRST() = 1`

The adapter key for the first custom control on the left side of the predefined primary controls.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_CUSTOM_RIGHT_FIRST() = 4096`

The adapter key for the first custom control on the right side of the predefined primary controls.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_FAST_FORWARD() = 128`

The adapter key for the fast forward control.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_PLAY_PAUSE() = 64`

The adapter key for the play/pause control.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_REPEAT() = 512`

The adapter key for the repeat control.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_REWIND() = 32`

The adapter key for the rewind control.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_SHUFFLE() = 1024`

The adapter key for the shuffle control.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_SKIP_TO_NEXT() = 256`

The adapter key for the skip to next control.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#ACTION_SKIP_TO_PREVIOUS() = 16`

The adapter key for the skip to previous control.

### Inherited functions

From [androidx.leanback.media.PlaybackBaseControlGlue](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue) `https://developer.android.com/reference/android/graphics/drawable/Drawable.html?` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#getArt()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#getBufferedPosition()()` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow?` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#getControlsRow()()`

Returns the playback controls row managed by the glue layer.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#getDuration()()` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackRowPresenter?` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#getPlaybackRowPresenter()()`

Returns the playback controls row Presenter managed by the glue layer.
`T!` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#getPlayerAdapter()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html?` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#getSubtitle()()`

Return The media subtitle.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#getSupportedActions()()`

Returns a bitmask of actions supported by the media player.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html?` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#getTitle()()`

Returns the title of the media item.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#isControlsOverlayAutoHideEnabled()()`

Returns true if the controls auto hides after a timeout when media is playing.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#isPlaying()()`

Returns true if media is currently playing.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#isPrepared()()`

Returns true when the media player is prepared to start media playback.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#next()()`

Goes to the next media item.
`java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#notifyItemChanged(androidx.leanback.widget.ArrayObjectAdapter,java.lang.Object)(adapter: https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter, object: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onAttachedToHost(androidx.leanback.media.PlaybackGlueHost)(host: https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost)`

This method is called attached to associated `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost`.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onCreateSecondaryActions(androidx.leanback.widget.ArrayObjectAdapter)(secondaryActionsAdapter: https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter)`

May be overridden to add secondary actions to the adapter.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onDetachedFromHost()()`

This method is called when current associated `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost` is attached to a different `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue` or `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost` is destroyed .
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onHostStart()()`

This method is called when `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost` is started.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onHostStop()()`

This method is called when `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost` is stopped.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onMetadataChanged()()`

Event when metadata changed
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onPreparedStateChanged()()`

Event when ready state for play changes.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onUpdateBufferedProgress()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onUpdateDuration()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onUpdateProgress()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#previous()()`

Goes to the previous media item.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#seekTo(long)(position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`

Seek media to a new position.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#setArt(android.graphics.drawable.Drawable)(cover: https://developer.android.com/reference/android/graphics/drawable/Drawable.html?)`

Sets the drawable representing cover image.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#setControlsOverlayAutoHideEnabled(boolean)(enable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Sets the controls to auto hide after a timeout when media is playing.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#setPlaybackRowPresenter(androidx.leanback.widget.PlaybackRowPresenter)(presenter: https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackRowPresenter?)`

Sets the controls row Presenter to be managed by the glue layer.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#setSubtitle(java.lang.CharSequence)(subtitle: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html?)`

Sets the media subtitle.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#setTitle(java.lang.CharSequence)(title: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html?)`

Sets the media title.
From [androidx.leanback.media.PlaybackGlue](https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#addPlayerCallback(androidx.leanback.media.PlaybackGlue.PlayerCallback)(playerCallback: https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue.PlayerCallback)`

Add a PlayerCallback.
`https://developer.android.com/reference/android/content/Context.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#getContext()()`

Returns the context.
`https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost?` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#getHost()()` `(https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue.PlayerCallback!>?` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#getPlayerCallbacks()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#onHostPause()()`

This method is called when `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost` is paused.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#onHostResume()()`

This method is called when `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost` is resumed.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#playWhenPrepared()()`

Starts play when `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#isPrepared()` becomes true.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#removePlayerCallback(androidx.leanback.media.PlaybackGlue.PlayerCallback)(callback: https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue.PlayerCallback)`

Remove a PlayerCallback.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#setHost(androidx.leanback.media.PlaybackGlueHost)(host: https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost?)`

This method is used to associate a PlaybackGlue with the `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlueHost` which provides UI and optional `https://developer.android.com/reference/kotlin/androidx/leanback/media/SurfaceHolderGlueHost`.
From [android.view.View.OnKeyListener](https://developer.android.com/reference/android/view/View.OnKeyListener.html) `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/view/View.OnKeyListener.html#onKey(android.view.View, int, android.view.KeyEvent)(p: https://developer.android.com/reference/android/view/View.html!, p1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, p2: https://developer.android.com/reference/android/view/KeyEvent.html!)`

## Constants

### ACTION_CUSTOM_LEFT_FIRST

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

```
const val ACTION_CUSTOM_LEFT_FIRST = 1: Int
```

The adapter key for the first custom control on the left side of the predefined primary controls.

### ACTION_CUSTOM_RIGHT_FIRST

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

```
const val ACTION_CUSTOM_RIGHT_FIRST = 4096: Int
```

The adapter key for the first custom control on the right side of the predefined primary controls.

### ACTION_FAST_FORWARD

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

```
const val ACTION_FAST_FORWARD = 128: Int
```

The adapter key for the fast forward control.

### ACTION_PLAY_PAUSE

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

```
const val ACTION_PLAY_PAUSE = 64: Int
```

The adapter key for the play/pause control.

### ACTION_REWIND

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

```
const val ACTION_REWIND = 32: Int
```

The adapter key for the rewind control.

### ACTION_SKIP_TO_NEXT

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

```
const val ACTION_SKIP_TO_NEXT = 256: Int
```

The adapter key for the skip to next control.

### ACTION_SKIP_TO_PREVIOUS

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

```
const val ACTION_SKIP_TO_PREVIOUS = 16: Int
```

The adapter key for the skip to previous control.

### PLAYBACK_SPEED_FAST_L0

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

```
const val PLAYBACK_SPEED_FAST_L0 = 10: Int
```

The initial (level 0) fast forward playback speed. The negative of this value is for rewind at the same speed.

### PLAYBACK_SPEED_FAST_L1

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

```
const val PLAYBACK_SPEED_FAST_L1 = 11: Int
```

The level 1 fast forward playback speed. The negative of this value is for rewind at the same speed.

### PLAYBACK_SPEED_FAST_L2

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

```
const val PLAYBACK_SPEED_FAST_L2 = 12: Int
```

The level 2 fast forward playback speed. The negative of this value is for rewind at the same speed.

### PLAYBACK_SPEED_FAST_L3

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

```
const val PLAYBACK_SPEED_FAST_L3 = 13: Int
```

The level 3 fast forward playback speed. The negative of this value is for rewind at the same speed.

### PLAYBACK_SPEED_FAST_L4

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

```
const val PLAYBACK_SPEED_FAST_L4 = 14: Int
```

The level 4 fast forward playback speed. The negative of this value is for rewind at the same speed.

### PLAYBACK_SPEED_INVALID

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

```
const val PLAYBACK_SPEED_INVALID = -1: Int
```

Invalid playback speed.

### PLAYBACK_SPEED_NORMAL

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

```
const val PLAYBACK_SPEED_NORMAL = 1: Int
```

Speed representing playback state that is playing normally.

### PLAYBACK_SPEED_PAUSED

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

```
const val PLAYBACK_SPEED_PAUSED = 0: Int
```

Speed representing playback state that is paused.

## Public constructors

### PlaybackBannerControlGlue

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

```
PlaybackBannerControlGlue(
    context: Context,
    seekSpeeds: IntArray<Int>,
    impl: T!
)
```

Constructor for the glue.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html` |   |
| `seekSpeeds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>` | The array of seek speeds for fast forward and rewind. The maximum length of the array is defined as NUMBER_OF_SEEK_SPEEDS. |
| `impl: T!` | Implementation to underlying media player. |

### PlaybackBannerControlGlue

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

```
PlaybackBannerControlGlue(
    context: Context,
    fastForwardSpeeds: IntArray<Int>,
    rewindSpeeds: IntArray<Int>,
    impl: T!
)
```

Constructor for the glue.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html` |   |
| `fastForwardSpeeds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>` | The array of seek speeds for fast forward. The maximum length of the array is defined as NUMBER_OF_SEEK_SPEEDS. |
| `rewindSpeeds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>` | The array of seek speeds for rewind. The maximum length of the array is defined as NUMBER_OF_SEEK_SPEEDS. |
| `impl: T!` | Implementation to underlying media player. |

## Public functions

### getCurrentPosition

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

Gets current position of the player. If the player is playing/paused, this method returns current position from `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter`. Otherwise, if the player is fastforwarding/rewinding, the method fake-pauses the `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlayerAdapter` and returns its own calculated position.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | Current position of the player. |

### getFastForwardSpeeds

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

```
fun getFastForwardSpeeds(): Array<Int>
```

Returns the fast forward speeds.

### getRewindSpeeds

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

```
fun getRewindSpeeds(): Array<Int>
```

Returns the rewind speeds.

### onActionClicked

```
fun onActionClicked(action: Action): Unit
```

Handles action clicks. A subclass may override this add support for additional actions.

### onKey

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

```
fun onKey(v: View!, keyCode: Int, event: KeyEvent!): Boolean
```

Handles key events and returns true if handled. A subclass may override this to provide additional support.

### pause

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

Pauses the media player.

### play

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

Starts the media player. Does nothing if `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#isPrepared()` is false. To wait `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#isPrepared()` to be true before playing, use `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackGlue#playWhenPrepared()`.

### setControlsRow

```
fun setControlsRow(controlsRow: PlaybackControlsRow): Unit
```

Sets the controls row to be managed by the glue layer. If `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow#getPrimaryActionsAdapter()` is not provided, a default `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter` will be created and initialized in `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onCreatePrimaryActions(androidx.leanback.widget.ArrayObjectAdapter)`. If `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow#getSecondaryActionsAdapter()` is not provided, a default `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter` will be created and initialized in `https://developer.android.com/reference/kotlin/androidx/leanback/media/PlaybackBaseControlGlue#onCreateSecondaryActions(androidx.leanback.widget.ArrayObjectAdapter)`. The primary actions and playback state related aspects of the row are updated by the glue.

## Protected functions

### onCreatePrimaryActions

```
protected fun onCreatePrimaryActions(primaryActionsAdapter: ArrayObjectAdapter): Unit
```

May be overridden to add primary actions to the adapter. Default implementation add `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow.PlayPauseAction`.

| Parameters |
|---|---|
| `primaryActionsAdapter: https://developer.android.com/reference/kotlin/androidx/leanback/widget/ArrayObjectAdapter` | The adapter to add primary `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Action`s. |

### onCreateRowPresenter

```
protected fun onCreateRowPresenter(): PlaybackRowPresenter
```

### onPlayCompleted

```
protected fun onPlayCompleted(): Unit
```

Event when play finishes, subclass may handling repeat mode here.

### onPlayStateChanged

```
protected fun onPlayStateChanged(): Unit
```

Event when play state changed.