Android技术分享| ViewPager2离屏加载,实现抖音上下视频滑动( 二 )


在View离开窗口的回调中 , 销毁播放器override fun onViewDetachedFromWindow(holder: BaseViewHolder) {super.onViewDetachedFromWindow(holder)Log.d("ViewPager2","View 离屏 第${holder.adapterPosition+1}页")dataArray[holder.adapterPosition].player.release()}
创建播放器就暂停 , 这样播放器就可以缓冲下一页的视频数据 , 那我们需要再找个地方将当前正在显示的页面的播放器开始播放 。
只需注册 的翻页监听 , 播放当前页的播放器 , 暂停其他页面的播放即可 。
binding.vp.registerOnPageChangeCallback(object :ViewPager2.OnPageChangeCallback(){override fun onPageSelected(position: Int) {super.onPageSelected(position)dataArray.forEachIndexed { index, videoData ->if (index==position){dataArray[index].player?.resumePlay()Log.d("ViewPager2","当前${index}播放")}}else{dataArray[index].player?.pause()Log.d("ViewPager2","当前${index}暂停")}}}}})
运行 , 发现效果非常的丝滑 , 如图所示 。所以说 非常适合做类似场景的需求~