通过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"/>
有没有办法以编程方式添加此类布局?
答案 0 :(得分:0)
而且我们也不能继承SimpleExoPlayerView,因为它的定义是 final 。
您想通过编程方式添加什么?就是这样吗?
答案 1 :(得分:0)
目前没有这样的方法可以让您直接在playerView上设置自定义控制器。相反,您必须将控制器添加到xml中的playerview并对其进行充气。
就我而言,我做了以下操作来添加控制器(我想,您不打算在播放视频时或夸大视频后更换控制器)
第1步:仅使用playerview和controller定义您的xml
(?<=\S)
第2步:将其充气并获得PlayerView
//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的多个布局文件
app:controller_layout_id =“您的自定义控制器”
现在获得第2步中编写的自定义播放器视图
将其添加到您需要的回收站视图中
PlayerView customPlayerView;
View view = LayoutInflater.from(applicationContext).inflate(R.layout.simple_exo_player, null, false);`enter code here`
customPlayerView = (PlayerView) view.getRootView();