这篇文章简单介绍下移动端Android系统下利用Camera2
相关API进行视频采集的方法。Camera2
是谷歌在Android 5.0新增的用来替代Camera1
操作摄像头的一个全新的API。
按照惯例先上一份源码AndroidVideo。Camera2
调用摄像头采集视频的核心实现在Camera2Capture.java。
权限配置
使用Android平台提供的摄像头,首先必须在配置文件中添加如下权限配置:
<uses-permission android:name="android.permission.CAMERA"/>
获取摄像头信息
打开摄像头管理器CameraManager
是一个用于检测、连接和描述摄像头设备的一个系统服务,可以通过调用Context.getSystemService(java.lang.String)
方法来获取一个CameraManager
的实例:
CameraManager mManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
获取摄像头列表信息
通过调用CameraManager.getCameraIdList()
方法,可以得到一个摄像头id的列表:
String[] cameraIds = mCameraManager.getCameraIdList();
for (String id : cameraIds) {
//TODO
}
可以通过相对应的ID从CameraManager
获取到对应摄像头的属性集合CameraCharacteristics
。
在CameraCharacteristics
可以获取到诸如前后置情况、支持的输出size、支持的输出格式等等之类的。