背景
降功耗,提清晰度(华为超分算法),流畅度(一加插帧算法)
规划
为了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主要