PlaybackBannerControlGlue
public
class
PlaybackBannerControlGlue
extends PlaybackBaseControlGlue<T extends PlayerAdapter>
java.lang.Object | |||
↳ | androidx.leanback.media.PlaybackGlue | ||
↳ | androidx.leanback.media.PlaybackBaseControlGlue<T extends androidx.leanback.media.PlayerAdapter> | ||
↳ | androidx.leanback.media.PlaybackBannerControlGlue<T extends androidx.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
PlaybackBaseControlGlue.onCreateSecondaryActions(ArrayObjectAdapter)
and respond to actions by overriding
onActionClicked(Action)
.
The subclass is responsible for implementing the "repeat mode" in
onPlayCompleted()
.
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 |
---|
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 | |
---|---|
Constants
ACTION_CUSTOM_LEFT_FIRST
public static final 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
public static final 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
public static final int ACTION_FAST_FORWARD
The adapter key for the fast forward control.
Constant Value: 128 (0x00000080)
ACTION_PLAY_PAUSE
public static final int ACTION_PLAY_PAUSE
The adapter key for the play/pause control.
Constant Value: 64 (0x00000040)
ACTION_REWIND
public static final int ACTION_REWIND
The adapter key for the rewind control.
Constant Value: 32 (0x00000020)
ACTION_SKIP_TO_NEXT
public static final int ACTION_SKIP_TO_NEXT
The adapter key for the skip to next control.
Constant Value: 256 (0x00000100)
ACTION_SKIP_TO_PREVIOUS
public static final int ACTION_SKIP_TO_PREVIOUS
The adapter key for the skip to previous control.
Constant Value: 16 (0x00000010)
PLAYBACK_SPEED_FAST_L0
public static final 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
public static final 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
public static final 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
public static final 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
public static final 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
public static final int PLAYBACK_SPEED_INVALID
Invalid playback speed.
Constant Value: -1 (0xffffffff)
PLAYBACK_SPEED_NORMAL
public static final int PLAYBACK_SPEED_NORMAL
Speed representing playback state that is playing normally.
Constant Value: 1 (0x00000001)
PLAYBACK_SPEED_PAUSED
public static final int PLAYBACK_SPEED_PAUSED
Speed representing playback state that is paused.
Constant Value: 0 (0x00000000)
Public constructors
PlaybackBannerControlGlue
public 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
public 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
public 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
public int[] getFastForwardSpeeds ()
Returns the fast forward speeds.
Returns | |
---|---|
int[] |
getRewindSpeeds
public int[] getRewindSpeeds ()
Returns the rewind speeds.
Returns | |
---|---|
int[] |
onActionClicked
public void onActionClicked (Action action)
Handles action clicks. A subclass may override this add support for additional actions.
Parameters | |
---|---|
action |
Action |
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.
Parameters | |
---|---|
v |
View |
keyCode |
int |
event |
KeyEvent |
Returns | |
---|---|
boolean |
pause
public void pause ()
Pauses the media player.
play
public void play ()
Starts the media player. Does nothing if isPrepared()
is false. To wait
isPrepared()
to be true before playing, use playWhenPrepared()
.
setControlsRow
public void setControlsRow (PlaybackControlsRow controlsRow)
Sets the controls row to be managed by the glue layer. If
PlaybackControlsRow.getPrimaryActionsAdapter()
is not provided, a default
ArrayObjectAdapter
will be created and initialized in
onCreatePrimaryActions(ArrayObjectAdapter)
. If
PlaybackControlsRow.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
protected 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 Action s.
|
onCreateRowPresenter
protected PlaybackRowPresenter onCreateRowPresenter ()
Returns | |
---|---|
PlaybackRowPresenter |
onPlayCompleted
protected void onPlayCompleted ()
Event when play finishes, subclass may handling repeat mode here.
onPlayStateChanged
protected void onPlayStateChanged ()
Event when play state changed.