Android ViewPager: вызовите onStop (), чтобы установить для экземпляра ExoPlayer значение null - PullRequest
0 голосов
/ 29 мая 2020

Я ищу решение для своего проекта, в котором я работаю с ViewPager2, и мне нужен способ вызвать onStop(), когда пользователь смахивает, и я хочу установить экземпляр ExoPlayer на null.

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Попробуйте следующее: -

  1. Зарегистрируйте обратный вызов изменения страницы просмотра:

       viewPager.registerOnPageChangeCallback(doppelgangerPageChangeCallback)
    
  2. Установите прослушиватель 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;
          }
        }
0 голосов
/ 29 мая 2020

Вы можете сделать это, реализовав интерфейс OnPageChangeListener и переопределив его методы. Существует метод onPageSelected (position: Int), этот метод будет запускаться при изменении страницы, поэтому вы можете сравнить положение своей страницы и ввести logi c для ваш ExoPlayer.

...