Android IOS WebRTC 音视频开发总结(十八)-- 手机适配

时间:2021-10-13 05:20:32

本文主要介绍上次碰到的某些机器上看不到视频的问题,文章来自博客园RTC.Blacker,转载请说明出处。

之前做的视频聊天App一直运行良好,前几天客户反馈说在三星9100. Android4.0.3上看不到自己的图像。

一翻查找后才发现是WebRTC底层的BUG,现已修复并反馈给社区了,下面主要分析BUG原因及解决方案。

Bug主要原因:

设置摄像头参数时使用了不支持的参数,导致Camera.setParameters出错,导致后面的内存分配出错,视频流读取出错,最终导致看不到视频。

Bug具体原因:

通过parameters.getSupportedPreviewSizes()读取摄像头PreviewSizes

Android IOS WebRTC 音视频开发总结(十八)-- 手机适配

但却将该参数赋值给PictureSize. 但是Camera不一定支持该PictureSize

Android IOS WebRTC 音视频开发总结(十八)-- 手机适配

所以执行Camera.setParameters()就悲剧了

Android IOS WebRTC 音视频开发总结(十八)-- 手机适配

下面我是测试过程中打印出来的日志,看到这里你就很容易明白了。

Android IOS WebRTC 音视频开发总结(十八)-- 手机适配

解决方案上面注释已经写得很清楚了,下面是更保险的解决方案:

Android IOS WebRTC 音视频开发总结(十八)-- 手机适配

Android IOS WebRTC 音视频开发总结(十八)-- 手机适配

你懂的,WEBRTC里面坑很多,路漫漫。。。