java ExoPlayer:将控制器放置在视频下方,不与视频重叠
我有一个PlayerView
以纵向方向占据活动的上半部分,屏幕的下半部分显示一些文本
我需要让控制器位于视频下方,而不与视频内容重叠(它将始终显示)。默认情况下,当用户触摸视频时,控制器出现在视频底部,覆盖视频的底部。在我的情况下,我需要控制器粘在视频下,与视频内容没有交叉点
我浏览了SimpleExoPlayer
和PlayerView
API,但没有找到任何方法
问题:如何使用ExoPlayer将控制器放置在视频下方
以下是布局的外观:
<RelativeLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent">
<com.google.安卓.exoplayer2.ui.PlayerView
安卓:id="@+id/video_view"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"/>
<TextView
安卓:id="@+id/text"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:layout_alignParentStart="true"
安卓:layout_below="@id/video_view"
安卓:scrollbars="vertical" />
</RelativeLayout>
# 1 楼答案
请参阅皮埃尔的回答
还要从上面删除控制器
PlayerView
,在这种情况下,通过在java文件中写入player.showController(false)
来删除控制器您还可以在xml中使用
app:use_controller:false
因此,您将是唯一一个顶部没有控制器的视频。并将其链接到视频底部的新控制器上
# 2 楼答案
这可能会给你一个主意,你也是吗
例如,假设我们希望播放控件仅包含位于视图中心的播放/暂停按钮。我们可以通过在应用程序的res/layout目录中创建
exo_playback_control_view.xml
文件来实现这一点,该文件包含:请注意,在布局中
@id/exo_play
和@id/exo_pause
是由ExoPlayer库定义的标准ID。需要使用标准ID,以便可以识别子视图,将其绑定到播放器并以适当的方式更新。每个视图的标准ID的完整列表可以在PlaybackControlView和SimpleExoPlayerView的Javadoc中找到。每个标准id的使用是可选的https://medium.com/google-exoplayer/customizing-exoplayers-ui-components-728cf55ee07a
# 3 楼答案
这会将控件向下推至屏幕底部:
然后在Java中:
编辑:修改了我对@RashimiGautam建议的回答