我将ExoPlayer用于Android应用,我希望切换控件的可见性。
我看到PlayerView
有showController()
方法和hideController()
方法,但没有toggleController()
方法。
显然我自己可以实现toggleController()
,但如何判断控件是否可见?我正在使用以下内容指定自定义控制器布局:
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:controller_layout_id="@layout/exo_controls" />
我需要弄清楚这样的函数(例如在Kotlin中):
fun toggleController() {
val playerView = findViewById<PlayerView>(R.id.player_view)
val controlsVisible = // ???
if (controlsVisible) {
playerView.hideController()
} else {
playerView.showController()
}
}
答案 0 :(得分:1)
您需要做的就是在PlayerView上调用isControllerVisible():
if (mPlayerView.isControllerVisible()) {
// Do something if controls are visible
return true;
} else {
// Do something else if controls are not showing
return false;
}
答案 1 :(得分:0)
您可以存储控件当前是否可见,并在每次隐藏或显示控件时更改它。您可能希望对切换进行速率限制,以避免出现双重动画问题。