首页 > 解决方案 > Leanback 传输控件覆盖是不可见的还是在视频表面后面?

问题描述

在使用 Leanback 和 exoplayer 实现 firetv 应用程序时,我使用了LeanbackPlayerAdapterexoplayer 提供的。我也在使用VideoMediaPlayerGlue扩展PlaybackTransportControlGlue. 它与此相同: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);

标签: javaandroidexoplayerleanbackamazon-fire-tv

解决方案


在我的活动 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"
    />


推荐阅读