在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}暂停")}}}}})
运行 , 发现效果非常的丝滑 , 如图所示 。所以说 非常适合做类似场景的需求~
- 我的第一个Android应用
- 分享两个实用的PPT素材库
- 怎么让PPT分享不那么枯燥?
- 古代整容术:早在我国古代就已经有了整形技术
- Android Studio使用mp4parser进行视频的分割
- 古埃及奇特医术木乃伊揭示古埃及医学技术
- 上海工商职业技术学院,关于上海工商外国语职业学院
- 真土豪一只表,梦幻西游手游80级普陀高玩心得分享
- 外贸员的日常工作分享
- 低成本高精度的定位技术-UWB定位