Android切换Fragment时视频依旧在播放,没有正常的停止。
Posted allinallinallin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android切换Fragment时视频依旧在播放,没有正常的停止。相关的知识,希望对你有一定的参考价值。
最近开发android应用,实现了用RadioGroup和ViewPager菜单导航栏的效果。但是在其中某个Fragment界面进行播放视频,切换到其他几个Fragment时,视频还在播放。
本以为在视频所在的Fragment中的某个生命周期中进行视频的pause()操作即可,但是将尝试了Fragment所有的声明周期函数,都无功而返,失败。
最后是通过懒加载的方式进行解决的:即用setUserVisibleHint回调函数解决setOffscreenPageLimit不能设置成不缓存页面的问题。有人说setUserVisibleHint才是fragment正真的onResume和onPause方法。
@Override
public void setUserVisibleHint(boolean isVisibleToUser)
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser)
// load data here:fragment可见时执行加载数据或者进度条等
else
// fragment is no longer visible:不可见时不执行操作
if (videoView != null)
videoView.pause();
if (mediaController != null)
mediaController.hide();
注意:本博客写的较为垃圾,需要优化,最近有点忙,后期会花时间整理,敬请见谅。
以上是关于Android切换Fragment时视频依旧在播放,没有正常的停止。的主要内容,如果未能解决你的问题,请参考以下文章
Android YouTube Player API Fragment无法手动处理触摸事件
在 Android 中播放 RTSP 流视频时如何保持宽高比?
VideoView 在 Fragment 中播放 .m3u8 不会在 Nexus 7 中播放。在 HTC1 M8 中播放正常