Я ищу решение для своего проекта, в котором я работаю с ViewPager2, и мне нужен способ вызвать onStop(), когда пользователь смахивает, и я хочу установить экземпляр ExoPlayer на null.
onStop()
null
Попробуйте следующее: -
Зарегистрируйте обратный вызов изменения страницы просмотра:
viewPager.registerOnPageChangeCallback(doppelgangerPageChangeCallback)
Установите прослушиватель pageChangeCallback:
var pageChangeCallback = object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { releasePlayer() } }
3.Функция инициализации и освобождения плеера ниже:
fun initializePlayer() { player = ExoPlayerFactory.newSimpleInstance(this); playerView.setPlayer(player); } fun releasePlayer() { if (player != null) { player.release(); player = null; } }
Вы можете сделать это, реализовав интерфейс OnPageChangeListener и переопределив его методы. Существует метод onPageSelected (position: Int), этот метод будет запускаться при изменении страницы, поэтому вы можете сравнить положение своей страницы и ввести logi c для ваш ExoPlayer.