ExoPlayer:如何判断控件是否显示?

时间:2018-04-16 18:32:42

标签: android exoplayer

我将ExoPlayer用于Android应用,我希望切换控件的可见性。

我看到PlayerViewshowController()方法和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()
    }
}

2 个答案:

答案 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)

您可以存储控件当前是否可见,并在每次隐藏或显示控件时更改它。您可能希望对切换进行速率限制,以避免出现双重动画问题。