Android开发问题集锦三--视频采集
程序之美
有些时候,我们会遇到同时测试前后置摄像头同时显示,这个需要系统的支持,也就是Rom的支持,有的设备可以做到前后置相机同时显示比如onePlus,有的手机就不支持前后置同时显示,当我们开启一个相机再去开启另一个的时候Camera.open会报出异常java.lang.RuntimeException: Fail to connect to camera service,本程序中,我们做了两个相机同时在一个界面显示,并相应的显示当前相机的状态和帧率等。
先上图:
很多书和资料上都介绍了相机调用的整个流程,主要是搞清楚Surface,Camera、SurfaceView和SurfaceHolder之间的关系
Surface就是“表面”的意思。Surface是一个句柄, 可以获得原生缓冲器以及其中的内容。
SurfaceView是Surface的显示手段,我们暂且称之为显示窗,也就是说,Surface是用通过SurfaceView才能展示其中的内容。
SurfaceHolder是操作surface的一个抽象接口,你可以通过SurfaceHolder来操作surface,比如改变其尺寸或者格式,修改surface的像素,监视surface的变化等等,