Leanback 传输控件覆盖是不可见的还是在视频表面后面?

Posted

技术标签:

【中文标题】Leanback 传输控件覆盖是不可见的还是在视频表面后面?【英文标题】:Leanback transport controls overlay are invisible or behind the video surface? 【发布时间】:2020-09-01 12:12:10 【问题描述】:

在使用 Leanback 和 exoplayer 实现 firetv 应用程序时,我使用了 exoplayer 提供的LeanbackPlayerAdapter。我还在使用扩展PlaybackTransportControlGlueVideoMediaPlayerGlue。它与此相同:https://github.com/android/tv-samples/blob/master/LeanbackShowcase/app/src/main/java/androidx/leanback/leanbackshowcase/app/media/VideoMediaPlayerGlue.java。下面是我用来启动一切的代码。现在由于某种奇怪的原因,播放开始并且所有的 firetv 控件都在遥控器上工作。但是,控件覆盖层无处可见。我想说的另一点是,当您向下使用 d-pad 时,您可以听到 firetv 滴答声,因此我有理由相信控件处于活动状态,但位于视频表面后面。例如,如果我在光标位于喜欢或不喜欢按钮上时单击,它会在屏幕上显示喜欢或不喜欢的吐司。

    LeanbackPlayerAdapter playerAdapter = new LeanbackPlayerAdapter(context, player, 16);
    playerAdapter.setPlaybackPreparer(this);
    playerAdapter.setControlDispatcher(null);
    playerAdapter.setCallback(null);
    mMediaPlayerGlue = new VideoMediaPlayerGlue((Activity) context, playerAdapter);
    mMediaPlayerGlue.setHost(mGlue);
    mMediaPlayerGlue.setTitle("title");
    mMediaPlayerGlue.setSubtitle("subtitle");

    player.prepare(mediaSource, !haveStartPosition, false);

    playWhenReady(mMediaPlayerGlue);

【问题讨论】:

【参考方案1】:

在我的活动 xml 视图中,我偶然看到了 exo 播放器视图,所以我只是摆脱了它们。这是 Playback 活动视图现在的样子:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android ="http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:tools = "http://schemas.android.com/tools"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
tools:context = "com.example.firetv.PlaybackActivity">

<FrameLayout
    android:id = "@+id/fragmentContainer"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    />

【讨论】:

以上是关于Leanback 传输控件覆盖是不可见的还是在视频表面后面?的主要内容,如果未能解决你的问题,请参考以下文章

Leanback for Android TV:取消设置视频标题会增加行间距

如何在windows中检测控件是不是是输入控件并覆盖输入

覆盖 2 个控件并使用 WPF 切换哪一个可见

flowplayer控制和视频不可见

从firebase传输后bigquery表中的数据是不是被覆盖?

在视频播放开始时隐藏 HTML5 视频控件的自动可见性,但保留所有其他默认控件行为