gpt4 book ai didi

Android TV - Leanback 库如何向 VideoSupportFragmentGlueHost 添加更多按钮

转载 作者:行者123 更新时间:2023-11-30 05:11:39 25 4
gpt4 key购买 nike

我正在使用 leanback-v17:27.1.0 库,我尝试自定义 VideoSupportFragmentGlueHost,我想在此处添加更多按钮,如重复或下一步按钮 enter image description here我尝试使用 leanback.app.PlaybackOverlayFragment 但在 leanback-v17:27 它没有像本教程那样的 PlaybackOverlayFragment 类 http://corochann.com/android-tv-application-hands-on-tutorial-7-159.html#PlaybackOverlayFragment有人可以帮我向这个 VideoSupportFragmentGlueHost 添加更多按钮

 public void initData(MovieSampleResult mObject)
{
try {
VideoSupportFragmentGlueHost glueHost =
new VideoSupportFragmentGlueHost(PlayFullScreenVideoFragment.this);
MediaPlayerAdapter playerAdapter = new MediaPlayerAdapter(getContext());
playerAdapter.setRepeatAction(PlaybackControlsRow.RepeatAction.INDEX_NONE);
mTransportControlGlue = new PlaybackTransportControlGlue<>(getContext(), playerAdapter);
mTransportControlGlue.setHost(glueHost);
mTransportControlGlue.setTitle(mObject.getName());
//mTransportControlGlue.setSubtitle(mObject.getDescription());
playerAdapter.setDataSource(Uri.parse(mObject.getVideo()));
Log.e("TAG PLAY FULL",mObject.getVideo());
MyTrackApplication myTrackApplication = MyTrackApplication.getInstance();
myTrackApplication.trackScreenView(TAGSCREEN,
mObject.getName(),
"Watch Video on FullScreen Mode",0);
} catch (Exception e) {
e.printStackTrace();
Log.e(TAG,e.getMessage());
}
}

最佳答案

如果您想向默认传输控件布局添加其他操作,您需要扩展 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.
}
}

关于Android TV - Leanback 库如何向 VideoSupportFragmentGlueHost 添加更多按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53627668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com