ExoPlayer:将控制器放置在视频下方,而不会与视频重叠

2022-09-01 20:31:11

我有一个以纵向方向占据活动的上半部分,屏幕的下半部分显示一些文本。PlayerView

我需要在视频下方设置控制器,而不会与视频内容重叠(它将始终显示)。默认情况下,当用户触摸视频时,控制器显示在视频底部,覆盖视频的底部。我的情况是,我需要控制器粘在视频下方,与视频内容没有交集。

我经历了API,但我还没有找到任何方法来做到这一点。SimpleExoPlayerPlayerView

问题:如何使用ExoPlayer将控制器放在视频下方?

布局如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.exoplayer2.ui.PlayerView
        android:id="@+id/video_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@id/video_view"
        android:scrollbars="vertical" />

</RelativeLayout>

答案 1

这会将控件向下推到屏幕底部:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.exoplayer2.ui.PlayerView
        android:id="@+id/video_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:use_controller="false" />

    <com.google.android.exoplayer2.ui.PlayerControlView
        android:id="@+id/controls"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/video_view"
        app:show_timeout="0" />
   
</RelativeLayout>

然后在Java中:

PlayerView videoView = findViewById(R.id.video_view);
PlayerControlView controls = findViewById(R.id.controls);
controls.setPlayer(videoView.getPlayer());

编辑:修改了我对@RashimiGautam建议的回答


答案 2

请通过@Pierre来参考答案。
还要从上面删除控制器,在这种情况下,通过写入java文件。
您还可以在 xml 中使用。
因此,您将唯一没有控制器的视频。并将其链接到视频底部的新控制器。PlayerView@id/video_viewplayer.showController(false)app:use_controller:false@id/controls


推荐