视频通话中的Camera操作

        视频通话也有打开本地摄像头预览的场景,但打开本地Camera预览逻辑,并非在Dailer APP中实现,具体流程图如下。

视频通话中的Camera操作_第1张图片

Dialer app中只调用

1、setCamera用于打开摄像头

        相关动作在Ims apk中实现,open函数最后调用了VTSource.java中的doOpenCamera函数,最后调用CameraManager的openCamera函数.

视频通话中的Camera操作_第2张图片

2、requestCameraCapabilities获取Camera相关尺寸,用于设置相关SurfaceView控件大小

        ImsVTProvider.java调用requestCameraCapabilitiesInternal返回预览相关参数

视频通话中的Camera操作_第3张图片

3、setPreviewSurface 将Local预览控件设置到CameraSession中

        VTSource.java中会直接创建CameraDevice Session,并设置重复执行,使本地Camera预览能沟通正常执行。

        调用VTSource.jav中createSession用于预览请求

视频通话中的Camera操作_第4张图片

        当session成功创建后,设置session重复执行

视频通话中的Camera操作_第5张图片

视频通话中的Camera操作_第6张图片

视频通话中的Camera操作_第7张图片

到此,视频通话本端显示完成,相关Log打印如下

视频通话中的Camera操作_第8张图片

         虽然视频通话不是APP直接调用Camera接口,但是本地调用Camera相关接口时跨进程调用而已,具体使用同app调用Camera接口一样,参考

Camera2 学习总结_右手吉他的博客-CSDN博客

你可能感兴趣的:(android)