java - Leanback 传输控件覆盖是不可见的还是在视频表面后面?
问题描述
在使用 Leanback 和 exoplayer 实现 firetv 应用程序时,我使用了LeanbackPlayerAdapter
exoplayer 提供的。我也在使用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);
解决方案
在我的活动 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"
/>
推荐阅读
- android - 在片段中调用方法
- php - 无法使用 php 7.3 在 ubuntu 19.10 上安装 php-intl 扩展
- automation - 自动创建 Power Bi 报告>
- cisco - % Cisco 中的无效接口类型和编号我的 vlan 是 22 23 和 24
- ruby-on-rails - Rails form_for 具有相同属性的嵌套和关联资源已填充文本
- python - 新闻在数据框中抓取多个网址
- sql - 如何在 Redshift 的数据库中创建表?
- python - 检查字符串中是否存在两个子字符串中的任何一个
- algorithm - 迪杰斯特拉检查站
- c++ - 如何使用struct和char对数据进行排序?