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 Fragment应用实战(音乐播放器界面)

在 Android 中播放 RTSP 流视频时如何保持宽高比?

VideoView 在 Fragment 中播放 .m3u8 不会在 Nexus 7 中播放。在 HTC1 M8 中播放正常

Android视频播放和横竖屏切换