ExoPlayer: Как определить, отображаются ли элементы управления?
Я использую 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()
}
}
2 ответа
Все, что вам нужно сделать, это вызвать isControllerVisible() в вашем PlayerView:
if (mPlayerView.isControllerVisible()) {
// Do something if controls are visible
return true;
} else {
// Do something else if controls are not showing
return false;
}
Вы можете просто сохранить видимость элементов управления и изменять их каждый раз, когда элементы управления скрыты или показаны. Вы, вероятно, захотите ограничить скорость переключения, чтобы избежать двойных проблем с анимацией.