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
。我还在使用扩展PlaybackTransportControlGlue
的VideoMediaPlayerGlue
。它与此相同: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:取消设置视频标题会增加行间距