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

huangapple 未分类评论48阅读模式
英文:

Android ViewPager: Call onStop() to set ExoPlayer instance to null

问题

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

英文:

I am looking for a solution for my project, where I am working with ViewPager2, and I need some way to call onStop() when the user swipes, and I want to set ExoPlayer instance to null.

答案1

得分: 0

你可以通过实现一个OnPageChangeListener接口并重写其方法来实现这一点,有一个方法onPageSelected(position: Int),当页面变化时会触发此方法,因此你可以比较页面的位置并为你的ExoPlayer设置逻辑。

英文:

You can do this by implementing a interface OnPageChangeListener and overriding its methods, There is method onPageSelected(position: Int) this method will be triggered when page change so you can compare position of your page and put you logic for your ExoPlayer.

答案2

得分: 0

  1. 注册ViewPager页面变更回调:
viewPager.registerOnPageChangeCallback(doppelgangerPageChangeCallback)
  1. 设置pageChangeCallback监听器:
var pageChangeCallback = object : ViewPager2.OnPageChangeCallback() {
    override fun onPageSelected(position: Int) {
        releasePlayer()
    }
}
  1. 初始化和释放播放器的函数如下:
fun initializePlayer() {
    player = ExoPlayerFactory.newSimpleInstance(this)
    playerView.setPlayer(player)
}

fun releasePlayer() {
    if (player != null) {
        player.release()
        player = null
    }
}
英文:

Please try the following:-

  1. Register viewpager page change callback:

        viewPager.registerOnPageChangeCallback(doppelgangerPageChangeCallback)
    
  2. Set pageChangeCallback listener:

           var pageChangeCallback = object : ViewPager2.OnPageChangeCallback() {
           override fun onPageSelected(position: Int) {
             releasePlayer()
           }    }
    

3.Function to initialize and release player below:

        fun initializePlayer() {
             player = ExoPlayerFactory.newSimpleInstance(this);
             playerView.setPlayer(player);
        }
        
        fun releasePlayer() {
          if (player != null) {
            player.release();
            player = null;
          }
        }

huangapple
  • 本文由 发表于 2020年5月29日 19:42:22
  • 转载请务必保留本文链接:https://java.coder-hub.com/62085175.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定