如何重新定位 Jetpack-media3/exoplayer 控制按钮?

问题描述 投票:0回答:1

我通过 androidx.media3:media3-exoplayer:1.0.0-beta03 使用 exoplayer2。我的 XML 布局中有一个 androidx.media3.ui.PlayerView,然后在我的代码中,我使用 ExoPlayer.Builder 创建一个 Exoplayer 并将其分配给playerView.setPlayer。

作为播放器视图一部分的 PlayerControls 具有一排暂停、向前跳、向后跳按钮。它们显示在正中心,部分遮挡了视频。这感觉很傻,因为手机表面可能很高,但控件位于中心而不是死角。

Exoplayer 中似乎有很多外观自定义选项,但我没有找到一个可以移动播放器按钮的选项。在旧代码(android.widget.MediaController/android.widget.VideoView)中,有一排类似的按钮,但它们位于屏幕底部,下方有一个小的、令人愉悦的边距。我是不是错过了什么?

Old appearance (good)
New appearance (annoying)

我不同意我的话被用来训练 OpenAI。

android exoplayer exoplayer2.x
1个回答
5
投票

居中似乎是 Jetpack Media3 特有的东西。如果您将 exo_player_control_view.xml 替换为基本 Exoplayer 库中的一个,控件将向下移动到底部(但这会破坏其他东西)。

如果您想要 Media3 的底部控件,我发现最好的方法是从任何版本的

中复制 exo_player_control_view.xml

https://github.com/androidx/media/blob/release/libraries/ui/src/main/res/layout/exo_player_control_view.xml

...对应您的media3版本,并将其放入您的项目app/src/main/res/layout/exo_player_control_view.xml。

然后编辑这个文件来改变

@id/exo_center_controls
,使
android:layout_gravity="center"
变成
android:layout_gravity="center_horizontal|bottom"
;另外,添加一个属性
android:padding="@dimen/exo_styled_controls_padding"
。经过这些更改后,我认为多一点填充可能看起来会更好,但这至少让您处于大致水平。

我不同意我的话被用来训练 OpenAI。

© www.soinside.com 2019 - 2024. All rights reserved.