SurfaceView加载屏幕闪烁、图层不显示的一些解决办法

最近在做一个视频直播的项目,用到surfaceView来播放视频画面,开始做以后才发现这个控件是有多坑爹,下面先说一下我遇到的几个问题,如果大家也遇到了而且有更好地解决方法的话,欢迎交流。

问题一:当SrrfaceView没有写在布局文件上时,而是通过ViewGroup的add来进行添加时,屏幕会闪烁一下

              解决办法:

              这是由于surafaceView第一次加载的时候,会重新刷新页面,其实解决方法也简单,就是在你的布局文件中写一个surfaceView,宽高设置成0就可以了,随便放在那里都行,就是这么简单的一个问题竟然困扰了我好久,以前没怎么用过SUrfaceView(因为都不是太了解,还让sdk大神背了一段时间黑锅,就不告诉他了),其实耐心点的话会发现只有第一次addVew(SurfaceView)会出现闪烁的状况,第二次就不会了,(猜也猜到了大哭


问题二:SurfaceView的图层问题,有时候add了以后,找不到这个surfaceView,退出的时候,发现它在某个图层的最下层,出现这个问题的原因我倒现在还不怎么了解,如果有哪位大神路过,希望解答一下可以。

             解决办法:

             surfaceView有两个方法可以大概基本解决这个问题,首先第一册方法是surfaceView.setZOrderOnTop(true),把surface设置为最顶层图层,但是,这个有一个很坑的地方是什么呢,就是它真的变成了最顶层,不管你想在这个控件上面再覆盖什么控件都不可能了,就是最顶层,就是这么任性。但是还有一个方法surfaceView.setZorderMediaOverlay(true)这个方法可以让surfaceView恢复到原来的图层,但是横竖屏切换的时候有时候没有起作用,这就真不知道怎么办了,有大神路过给解答一下。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值