首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安卓电视- leanback库如何向VideoSupportFragmentGlueHost添加更多按钮

安卓电视- leanback库如何向VideoSupportFragmentGlueHost添加更多按钮
EN

Stack Overflow用户
提问于 2018-12-05 16:01:08
回答 1查看 884关注 0票数 2

我正在使用leanback v17:27.1.0库,并尝试自定义VideoSupportFragmentGlueHost,我想在这里添加更多按钮,比如repeat或next按钮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中添加更多按钮

代码语言:javascript
复制
 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());
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-02-21 23:40:55

如果要向默认传输控件布局添加其他操作,则需要扩展PlaybackTransportControlGlue类并覆盖添加操作的方法。

下面的示例显示了如何添加用于跳到下一段内容的附加主要操作(位于搜索栏上方)和用于启用隐藏字幕的辅助操作(位于搜索栏下方)。本例使用MediaPlayerAdapter类,因为这就是您在问题中使用的类,但它可以用于任何PlayerAdapter实现。

代码语言:javascript
复制
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.
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53627668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档