本文主要介绍上次碰到的某些机器上看不到视频的问题,文章来自博客园RTC.Blacker,转载请说明出处。
之前做的视频聊天App一直运行良好,前几天客户反馈说在三星9100. Android4.0.3上看不到自己的图像。
一翻查找后才发现是WebRTC底层的BUG,现已修复并反馈给社区了,下面主要分析BUG原因及解决方案。
Bug主要原因:
设置摄像头参数时使用了不支持的参数,导致Camera.setParameters出错,导致后面的内存分配出错,视频流读取出错,最终导致看不到视频。
Bug具体原因:
通过parameters.getSupportedPreviewSizes()读取摄像头PreviewSizes
但却将该参数赋值给PictureSize. 但是Camera不一定支持该PictureSize
所以执行Camera.setParameters()就悲剧了
下面我是测试过程中打印出来的日志,看到这里你就很容易明白了。
解决方案上面注释已经写得很清楚了,下面是更保险的解决方案:
你懂的,WEBRTC里面坑很多,路漫漫。。。