Android ViewPager:调用 onStop() 将 ExoPlayer 实例设置为 null



我正在为我的项目寻找解决方案,我正在使用ViewPager2,我需要某种方式在用户滑动时调用onStop(),我想将ExoPlayer实例设置为null

您可以通过实现接口OnPageChangeListener并覆盖其方法来做到这一点,有方法onPageSelected(position: Int(此方法将在页面更改时触发,因此您可以比较页面的位置并为ExoPlayer提供逻辑。

请尝试以下操作:-

  1. 注册查看页更改回调:

    viewPager.registerOnPageChangeCallback(doppelgangerPageChangeCallback)
    
  2. 设置页面更改回调监听器:

    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;
}
}

最新更新