added in version 26.1.0
belongs to Maven artifact com.android.support:leanback-v17:28.0.0-alpha1

PlaybackBannerControlGlue

public class PlaybackBannerControlGlue
extends PlaybackBaseControlGlue<T extends PlayerAdapter>

java.lang.Object
   ↳ android.support.v17.leanback.media.PlaybackGlue
     ↳ android.support.v17.leanback.media.PlaybackBaseControlGlue<T extends android.support.v17.leanback.media.PlayerAdapter>
       ↳ android.support.v17.leanback.media.PlaybackBannerControlGlue<T extends android.support.v17.leanback.media.PlayerAdapter>


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 that manages interaction between the leanback UI components PlaybackControlsRow PlaybackControlsRowPresenter and a functional PlayerAdapter which represents the underlying media player.

Apps must pass a PlayerAdapter in the constructor for a specific implementation e.g. a MediaPlayerAdapter.

The glue has two action bars: primary action bars and secondary action bars. Apps can provide additional actions by overriding onCreatePrimaryActions(ArrayObjectAdapter) and / or onCreateSecondaryActions(ArrayObjectAdapter) and respond to actions by overriding onActionClicked(Action).

The subclass is responsible for implementing the "repeat mode" in onPlayCompleted().

Sample Code:

 public class MyVideoFragment extends VideoFragment {
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         PlaybackBannerControlGlue playerGlue =
                 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();
     }
 }
 

Summary

Constants

int ACTION_CUSTOM_LEFT_FIRST

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

int ACTION_CUSTOM_RIGHT_FIRST

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

int ACTION_FAST_FORWARD

The adapter key for the fast forward control.

int ACTION_PLAY_PAUSE

The adapter key for the play/pause control.

int ACTION_REWIND

The adapter key for the rewind control.

int ACTION_SKIP_TO_NEXT

The adapter key for the skip to next control.

int ACTION_SKIP_TO_PREVIOUS

The adapter key for the skip to previous control.

int PLAYBACK_SPEED_FAST_L0

The initial (level 0) fast forward playback speed.

int PLAYBACK_SPEED_FAST_L1

The level 1 fast forward playback speed.

int PLAYBACK_SPEED_FAST_L2

The level 2 fast forward playback speed.

int PLAYBACK_SPEED_FAST_L3

The level 3 fast forward playback speed.

int PLAYBACK_SPEED_FAST_L4

The level 4 fast forward playback speed.

int PLAYBACK_SPEED_INVALID

Invalid playback speed.

int PLAYBACK_SPEED_NORMAL

Speed representing playback state that is playing normally.

int PLAYBACK_SPEED_PAUSED

Speed representing playback state that is paused.

Inherited constants

From class android.support.v17.leanback.media.PlaybackBaseControlGlue

Public constructors

PlaybackBannerControlGlue(Context context, int[] seekSpeeds, T impl)

Constructor for the glue.

PlaybackBannerControlGlue(Context context, int[] fastForwardSpeeds, int[] rewindSpeeds, T impl)

Constructor for the glue.

Public methods

long getCurrentPosition()

Gets current position of the player.

int[] getFastForwardSpeeds()

Returns the fast forward speeds.

int[] getRewindSpeeds()

Returns the rewind speeds.

void onActionClicked(Action action)

Handles action clicks.

boolean onKey(View v, int keyCode, KeyEvent event)

Handles key events and returns true if handled.

void pause()

Pauses the media player.

void play()

Starts the media player.

void setControlsRow(PlaybackControlsRow controlsRow)

Sets the controls row to be managed by the glue layer.

Protected methods

void onCreatePrimaryActions(ArrayObjectAdapter primaryActionsAdapter)

May be overridden to add primary actions to the adapter.

PlaybackRowPresenter onCreateRowPresenter()
void onPlayCompleted()

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

void onPlayStateChanged()

Event when play state changed.

Inherited methods

From class android.support.v17.leanback.media.PlaybackBaseControlGlue
From class android.support.v17.leanback.media.PlaybackGlue
From class java.lang.Object
From interface android.support.v17.leanback.widget.OnActionClickedListener
From interface android.view.View.OnKeyListener

Constants

ACTION_CUSTOM_LEFT_FIRST

added in version 26.1.0
int ACTION_CUSTOM_LEFT_FIRST

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

Constant Value: 1 (0x00000001)

ACTION_CUSTOM_RIGHT_FIRST

added in version 26.1.0
int ACTION_CUSTOM_RIGHT_FIRST

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

Constant Value: 4096 (0x00001000)

ACTION_FAST_FORWARD

added in version 26.1.0
int ACTION_FAST_FORWARD

The adapter key for the fast forward control.

Constant Value: 128 (0x00000080)

ACTION_PLAY_PAUSE

added in version 26.1.0
int ACTION_PLAY_PAUSE

The adapter key for the play/pause control.

Constant Value: 64 (0x00000040)

ACTION_REWIND

added in version 26.1.0
int ACTION_REWIND

The adapter key for the rewind control.

Constant Value: 32 (0x00000020)

ACTION_SKIP_TO_NEXT

added in version 26.1.0
int ACTION_SKIP_TO_NEXT

The adapter key for the skip to next control.

Constant Value: 256 (0x00000100)

ACTION_SKIP_TO_PREVIOUS

added in version 26.1.0
int ACTION_SKIP_TO_PREVIOUS

The adapter key for the skip to previous control.

Constant Value: 16 (0x00000010)

PLAYBACK_SPEED_FAST_L0

added in version 26.1.0
int PLAYBACK_SPEED_FAST_L0

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

Constant Value: 10 (0x0000000a)

PLAYBACK_SPEED_FAST_L1

added in version 26.1.0
int PLAYBACK_SPEED_FAST_L1

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

Constant Value: 11 (0x0000000b)

PLAYBACK_SPEED_FAST_L2

added in version 26.1.0
int PLAYBACK_SPEED_FAST_L2

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

Constant Value: 12 (0x0000000c)

PLAYBACK_SPEED_FAST_L3

added in version 26.1.0
int PLAYBACK_SPEED_FAST_L3

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

Constant Value: 13 (0x0000000d)

PLAYBACK_SPEED_FAST_L4

added in version 26.1.0
int PLAYBACK_SPEED_FAST_L4

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

Constant Value: 14 (0x0000000e)

PLAYBACK_SPEED_INVALID

added in version 26.1.0
int PLAYBACK_SPEED_INVALID

Invalid playback speed.

Constant Value: -1 (0xffffffff)

PLAYBACK_SPEED_NORMAL

added in version 26.1.0
int PLAYBACK_SPEED_NORMAL

Speed representing playback state that is playing normally.

Constant Value: 1 (0x00000001)

PLAYBACK_SPEED_PAUSED

added in version 26.1.0
int PLAYBACK_SPEED_PAUSED

Speed representing playback state that is paused.

Constant Value: 0 (0x00000000)

Public constructors

PlaybackBannerControlGlue

added in version 26.1.0
PlaybackBannerControlGlue (Context context, 
                int[] seekSpeeds, 
                T impl)

Constructor for the glue.

Parameters
seekSpeeds int: 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 version 26.1.0
PlaybackBannerControlGlue (Context context, 
                int[] fastForwardSpeeds, 
                int[] rewindSpeeds, 
                T impl)

Constructor for the glue.

Parameters
fastForwardSpeeds int: The array of seek speeds for fast forward. The maximum length of the array is defined as NUMBER_OF_SEEK_SPEEDS.

rewindSpeeds int: 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 methods

getCurrentPosition

added in version 26.1.0
long getCurrentPosition ()

Gets current position of the player. If the player is playing/paused, this method returns current position from PlayerAdapter. Otherwise, if the player is fastforwarding/rewinding, the method fake-pauses the PlayerAdapter and returns its own calculated position.

Returns
long Current position of the player.

getFastForwardSpeeds

added in version 26.1.0
int[] getFastForwardSpeeds ()

Returns the fast forward speeds.

Returns
int[]

getRewindSpeeds

added in version 26.1.0
int[] getRewindSpeeds ()

Returns the rewind speeds.

Returns
int[]

onActionClicked

added in version 26.1.0
void onActionClicked (Action action)

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

Parameters
action Action

onKey

added in version 26.1.0
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.

Parameters
v View

keyCode int

event KeyEvent

Returns
boolean

pause

added in version 26.1.0
void pause ()

Pauses the media player.

play

added in version 26.1.0
void play ()

Starts the media player. Does nothing if isPrepared() is false. To wait isPrepared() to be true before playing, use playWhenPrepared().

setControlsRow

added in version 26.1.0
void setControlsRow (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(ArrayObjectAdapter). If getSecondaryActionsAdapter() is not provided, a default ArrayObjectAdapter will be created and initialized in onCreateSecondaryActions(ArrayObjectAdapter). The primary actions and playback state related aspects of the row are updated by the glue.

Parameters
controlsRow PlaybackControlsRow

Protected methods

onCreatePrimaryActions

added in version 26.1.0
void onCreatePrimaryActions (ArrayObjectAdapter primaryActionsAdapter)

May be overridden to add primary actions to the adapter. Default implementation add PlaybackControlsRow.PlayPauseAction.

Parameters
primaryActionsAdapter ArrayObjectAdapter: The adapter to add primary Actions.

onCreateRowPresenter

added in version 26.1.0
PlaybackRowPresenter onCreateRowPresenter ()

Returns
PlaybackRowPresenter

onPlayCompleted

added in version 26.1.0
void onPlayCompleted ()

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

onPlayStateChanged

added in version 26.1.0
void onPlayStateChanged ()

Event when play state changed.