【发布时间】:2021-06-20 03:48:20
【问题描述】:
我正在开发将使用 ExoPlayer 播放视频的应用程序。出于某种原因,当我尝试暂停视频播放器时,没有显示播放/暂停图标。我为仅播放/暂停制作了自定义布局并将其设置在 PlayerView 上。使用player.playWhenReady = true 或player.playWhenReady = true 播放/暂停视频。在任何地方都找不到解决方案,看起来我错过了什么但不知道是什么。
custom_player_controller.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageButton android:id="@id/exo_play"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:background="#CC000000"
style="@style/ExoMediaButton.Play"/>
<ImageButton android:id="@id/exo_pause"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:background="#CC000000"
style="@style/ExoMediaButton.Pause"/>
</FrameLayout>
我在 RecyclerView 中使用 ExoPlayer,这里是 RecyclerView 的 layout_item.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:focusable="true">
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/feed_video_player"
app:surface_type="texture_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:resize_mode="fixed_width"
app:controller_layout_id="@layout/custom_player_controller"
android:paddingBottom="55dp"
android:background="#000"/>
</RelativeLayout>
然后在 RVAdapter 中播放/暂停视频我正在这样做
setOnTouchListener(object : View.OnTouchListener {
val gestureDetector: GestureDetector = GestureDetector(context, object:
GestureDetector.SimpleOnGestureListener() {
override fun onSingleTapUp(e: MotionEvent?): Boolean {
super.onSingleTapUp(e)
if (!player.playWhenReady) {
player.playWhenReady = true
} else {
player.playWhenReady = false
}
return true
}
})
override fun onTouch(p0: View?, p1: MotionEvent?): Boolean {
gestureDetector.onTouchEvent(p1)
return true
}
})
它会暂停并播放视频,我所寻找的只是在视频暂停时显示暂停图标。谢谢。
【问题讨论】:
-
你为什么使用 GestureDetector?
-
@Eyosiyas 因为我稍后会使用 onLongPress,我知道我可以只使用 onClickListener 但它不会改变任何东西