我刚刚从 exxoplayer2 迁移到 media3,我遇到了自定义播放器控件视图按钮(
eco_play
和 exo_pause
)的一些问题
我有玩家视图
<androidx.media3.ui.PlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible"
app:controller_layout_id="@layout/player_control_view" />
在我的player_control_view布局中我添加了
<LinearLayout
android:id="@+id/controlRack"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:orientation="horizontal">
<ImageButton
android:id="@id/exo_rew"
style="@style/PlayerControlButtonBaseStyle.RewButton" />
<ImageButton
android:id="@id/exo_play"
style="@style/PlayerControlButtonBaseStyle.PlayButton"
android:layout_width="100dp"
android:layout_marginLeft="@dimen/player_control_play_pause_margin"
android:layout_marginRight="@dimen/player_control_play_pause_margin" />
<ImageButton
android:id="@id/exo_pause"
style="@style/PlayerControlButtonBaseStyle.PauseButton"
android:layout_width="100dp"
android:layout_marginLeft="@dimen/player_control_play_pause_margin"
android:layout_marginRight="@dimen/player_control_play_pause_margin" />
<ImageButton
android:id="@id/exo_ffwd"
style="@style/PlayerControlButtonBaseStyle.FfwdButton" />
</LinearLayout>
现在,如果我尝试在迁移后运行应用程序,播放和暂停按钮将无法按预期运行,并且它会并排显示在我的图层上。
我尝试为按钮提供 touchEvent 方法,但它根本不起作用。 我不太确定在这里做什么。
因为默认 exoplayer 的 exo_play 和 exo_pause 按钮应该同时出现,而不是并排出现 2 个单独的按钮。
谢谢大家的帮助
好的,这是 Markdown 中的格式化代码:
<!-- old code -->
<FrameLayout>
<ImageButton
android:id="@id/exo_play"/>
<ImageButton
android:id="@id/exo_pause"/>
</FrameLayout>
<!-- replace with -->
<FrameLayout>
<ImageButton
android:id="@id/exo_play_pause"/>
</FrameLayout>
<!-- drawables.xml -->
<drawable name="exo_styled_controls_pause">
@drawable/ic_pause
</drawable>
<drawable name="exo_styled_controls_play">
@drawable/ic_play
</drawable>
不要更改属性名称,仅覆盖图标可绘制对象(ic_pause、ic_play)以自定义播放/暂停图标样式。
如果您还有其他问题,请告诉我!祝你编码愉快。