背景
降功耗,提清晰度(华为超分算法),流畅度(一加插帧算法)
规划
为了surfaceView能稳定能上线,采用和华为(历史就有合作)合作的方式进行,一共分为3个阶段推进。
具体如下:
- SurfaceView可用
- 保证surfaceView可用,无crash。
- SurfaceView 首帧优化
- 保证使用surfaceView的情况,首帧和textureview持平
- SurfaceControl 最佳实践,android 系统 >= 10.0 可用
踩坑及解决方案
1. 黑屏
1. Zorder -3
surfaceview送显(送显就是给surfaceview填充图像数据)晚了,导致surfaceView无内容绘制,导致黑屏。
排查方向切换过程中dummy surface(占位不黑屏作用)或者surface + play 绑定关系出现异常。正常情况下只要player 正常 codec工作,就会送帧数据给surfaceview。
2. surface + player 张冠李戴
架构情况导致,不通用
3. 退后台过程中屏幕黑屏
dummy surface 的是否使用了。由于surfaceView 只要gone掉,surface立马销毁,会出现黑屏情况,为了避免,这种情况,可以通过设置setSurface(null)的方式,通知播放器使用dummy surface 占位,优化体验。
2. 各种 Crash
crash主要

本文探讨了在Android开发中使用SurfaceView遇到的黑屏、Crash和首帧数据延迟等问题,详细分析了问题原因并提供了解决方案。针对不同场景,如退后台过程中的黑屏,提出了通过设置Dummy Surface优化用户体验的方法。同时,文章还指出系统定制化和业务代码是导致Crash的主要因素,并给出了针对性的改进措施。
最低0.47元/天 解锁文章
1603

被折叠的 条评论
为什么被折叠?



