以编程方式为SimpleExoPlayerView设置自定义控制器

6
通过XML,我们可以轻松地将自定义UI控制器(controller_layout_id)添加到SimpleExoPlayerView,如下所示:
    <com.google.android.exoplayer2.ui.SimpleExoPlayerView
        android:id="@+id/exo_player_view"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        app:controller_layout_id="@layout/player_controls"/>

有没有一种程序化添加这种布局的方法?

不,你必须自己编写MoreComplexExoPlayerView - pskink
2个回答

4

目前还没有一种方法可以直接在playerView上设置自定义控制器,您需要在xml中添加控制器并进行充气,才能将其添加到playerview中。

在我的情况下,我通过以下方式添加控制器(假设您不打算在播放视频或填充后更改控制器):

步骤1:只使用playerview和controller定义您的xml

 //simple_exo_player.xml

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.exoplayer2.ui.PlayerView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:id="@+id/playerView"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     app:rewind_increment="10000"
     app:fastforward_increment="10000"
     android:background="#000"
     app:show_timeout="1000"
     app:controller_layout_id="@layout/custom_playback_control"
     app:resize_mode="fit">

步骤二:将其解压并获取PlayerView。
 PlayerView customPlayerView;
 View view = LayoutInflater.from(applicationContext).inflate(R.layout.simple_exo_player, null, false);`enter code here`   
 customPlayerView = (PlayerView) view.getRootView();

由于您并没有提到您想通过编程添加自定义控制器的原因,我假设如下。

  1. 您想要有多个自定义控制器,并根据视图类型使用它
  2. 您计划在RecyclerView(或多个视图集)中使用它,其中您想要在代码中动态添加已预定义自定义控制器的Playerview,而不是在xml中定义

以下是您需要执行的操作:

通过更改以下行来创建具有不同控制器的多个Playerview布局文件:

app:controller_layout_id="您的自定义控制器"

现在按照步骤2中所写获取您的自定义Playerview

将其添加到RecyclerView中所需的位置

FrameLayout playArea;
playArea = v.findViewById(R.id.exoplayer_frame);
playArea.addView(customPlayerView);

谁想要点踩,请说明哪里有问题,这样答案就可以得到改进、更新或删除(如果库有重大更新而此答案不再适用)。 - Extremis II
我可以在Playerview之外设置自定义控件吗?比如将playerview放置在屏幕顶部,而自定义控件应该显示在底部?这是可能的吗? - Gyan Swaroop Awasthi
@GyanSwaroopAwasthi 是的,您可以自定义播放器视图的位置。有许多文章可以帮助您实现此目标。这是其中之一 https://levelup.gitconnected.com/customize-exoplayer-overlay-look-like-youtube-player-14fdd6d4583d - Extremis II

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接