Если вы хотите добавить дополнительные действия в макет элементов управления транспортом по умолчанию, вам нужно расширить класс PlaybackTransportControlGlue
и переопределить методы, добавляющие действия.
Ниже приведен пример, показывающий, как добавить дополнительное первичное действие (верхняя строка над строкой поиска) для перехода к следующему фрагменту контента и вторичное действие (под строкой поиска) для включения скрытых субтитров.,В этом примере используется класс MediaPlayerAdapter
, который вы используете в своем вопросе, но это может работать с любой реализацией PlayerAdapter
.
public class VideoPlayerGlue extends PlaybackTransportControlGlue<MediaPlayerAdapter> {
private PlaybackControlsRow.SkipNextAction skipNextAction;
private PlaybackControlsRow.ClosedCaptioningAction closedCaptioningAction;
public VideoPlayerGlue(Context context, MediaPlayerAdapter impl) {
super(context, impl);
closedCaptioningAction = new PlaybackControlsRow.ClosedCaptioningAction(context);
skipNextAction = new PlaybackControlsRow.SkipNextAction(context);
}
@Override
protected void onCreatePrimaryActions(ArrayObjectAdapter primaryActionsAdapter) {
super.onCreatePrimaryActions(primaryActionsAdapter); // Adds play/pause first.
primaryActionsAdapter.add(skipNextAction); // Adds skip next second. Order matters.
}
@Override
protected void onCreateSecondaryActions(ArrayObjectAdapter secondaryActionsAdapter) {
secondaryActionsAdapter.add(closedCaptioningAction); // Adds CC to row below seek bar.
}
@Override
public void onActionClicked(Action action) {
// Handle your action clicks here to allow them to interface with
// the player and/or the PlayerAdapter.
super.onActionClicked(action); // Allows for built-in play/pause and seek bar clicks.
}
}