PlaybackTransportControlGlue
public class PlaybackTransportControlGlue<T extends PlayerAdapter> extends PlaybackBaseControlGlue
| java.lang.Object | |||
| ↳ | androidx.leanback.media.PlaybackGlue | ||
| ↳ | androidx.leanback.media.PlaybackBaseControlGlue | ||
| ↳ | androidx.leanback.media.PlaybackTransportControlGlue |
A helper class for managing a PlaybackControlsRow being displayed in PlaybackGlueHost, it supports standard playback control actions play/pause, and skip next/previous. This helper class is a glue layer in that manages interaction between the leanback UI components PlaybackControlsRowPlaybackTransportRowPresenter and a functional PlayerAdapter which represents the underlying media player.
App must pass a PlayerAdapter in constructor for a specific implementation e.g. a MediaPlayerAdapter.
The glue has two actions bar: primary actions bar and secondary actions bar. App can provide additional actions by overriding onCreatePrimaryActions and / or onCreateSecondaryActions and respond to actions by override onActionClicked.
It's also subclass's responsibility to implement the "repeat mode" in onPlayCompleted.
Apps calls setSeekProvider to provide seek data. If the PlaybackGlueHost is instance of PlaybackSeekUi, the provider will be passed to PlaybackGlueHost to render thumb bitmaps.
public class MyVideoFragment extends VideoFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); PlaybackTransportControlGlueplayerGlue = new PlaybackTransportControlGlue(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 extends PlayerAdapter> |
Type of |
Summary
Public constructors |
|---|
PlaybackTransportControlGlue(Context context, T impl)Constructor for the glue. |
Public methods |
|
|---|---|
final PlaybackSeekDataProvider |
Get seek data provider used during user seeking. |
final boolean |
|
void |
onActionClicked(@NonNull Action action)Handles action clicks. |
boolean |
Handles key events and returns true if handled. |
void |
setControlsRow(@NonNull PlaybackControlsRow controlsRow)Sets the controls row to be managed by the glue layer. |
final void |
setSeekEnabled(boolean seekEnabled)Enable or disable seek when |
final void |
setSeekProvider(PlaybackSeekDataProvider seekProvider)Set seek data provider used during user seeking. |
Protected methods |
|
|---|---|
void |
This method is called attached to associated |
void |
onCreatePrimaryActions(May be overridden to add primary actions to the adapter. |
@NonNull PlaybackRowPresenter |
|
void |
This method is called when current associated |
void |
Event when play state changed. |
void |
Inherited Constants |
||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Inherited methods |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Public constructors
PlaybackTransportControlGlue
public PlaybackTransportControlGlue(Context context, T impl)
Constructor for the glue.
| Parameters | |
|---|---|
Context context |
|
T impl |
Implementation to underlying media player. |
Public methods
getSeekProvider
public final PlaybackSeekDataProvider getSeekProvider()
Get seek data provider used during user seeking.
| Returns | |
|---|---|
PlaybackSeekDataProvider |
Seek data provider used during user seeking. |
isSeekEnabled
public final boolean isSeekEnabled()
| Returns | |
|---|---|
boolean |
True if seek is enabled without |
onActionClicked
public void onActionClicked(@NonNull Action action)
Handles action clicks. A subclass may override this add support for additional actions.
onKey
public boolean onKey(View v, int keyCode, KeyEvent event)
Handles key events and returns true if handled. A subclass may override this to provide additional support.
setControlsRow
public void setControlsRow(@NonNull PlaybackControlsRow controlsRow)
Sets the controls row to be managed by the glue layer. If getPrimaryActionsAdapter is not provided, a default ArrayObjectAdapter will be created and initialized in onCreatePrimaryActions. If getSecondaryActionsAdapter is not provided, a default ArrayObjectAdapter will be created and initialized in onCreateSecondaryActions. The primary actions and playback state related aspects of the row are updated by the glue.
setSeekEnabled
public final void setSeekEnabled(boolean seekEnabled)
Enable or disable seek when getSeekProvider is null. When true, seekTo will be called during user seeking.
| Parameters | |
|---|---|
boolean seekEnabled |
True to enable seek, false otherwise |
setSeekProvider
public final void setSeekProvider(PlaybackSeekDataProvider seekProvider)
Set seek data provider used during user seeking.
| Parameters | |
|---|---|
PlaybackSeekDataProvider seekProvider |
Seek data provider used during user seeking. |
Protected methods
onAttachedToHost
protected void onAttachedToHost(@NonNull PlaybackGlueHost host)
This method is called attached to associated PlaybackGlueHost. Subclass may override and call super.onAttachedToHost().
onCreatePrimaryActions
protected void onCreatePrimaryActions(
@NonNull ArrayObjectAdapter primaryActionsAdapter
)
May be overridden to add primary actions to the adapter. Default implementation add PlaybackControlsRow.PlayPauseAction.
| Parameters | |
|---|---|
@NonNull ArrayObjectAdapter primaryActionsAdapter |
The adapter to add primary |
onDetachedFromHost
protected void onDetachedFromHost()
This method is called when current associated PlaybackGlueHost is attached to a different PlaybackGlue or PlaybackGlueHost is destroyed . Subclass may override and call super.onDetachedFromHost() at last. A typical PlaybackGlue will release resources (e.g. MediaPlayer or connection to playback service) in this method.