发布于 2016-08-04 12:06:23
首先从设备获取相机in列表,我们可以使用CameraManager来迭代系统中可用的所有相机,每个摄像机都有指定的cameraId。使用cameraId,我们可以得到指定的相机设备的属性。这些属性由类CameraCharacteristics表示。像“是前面还是后面的摄像头”、“支持输出分辨率”之类的东西都可以在那里查询。
CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
try {
return manager.getCameraIdList();
} catch (CameraAccessException e) {
return null;
}
现在如果你想打开前面的摄像机
CameraCharacteristics characteristics
= manager.getCameraCharacteristics(cameraId);
Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING);
if (facing != null && facing == CameraCharacteristics.LENS_FACING_FRONT) {
//Do your code here (open Camera with Camera ID)
}
这是另一种直接返回CameraId的方法。
String getFrontFacingCameraId(CameraManager cManager){
for(final String cameraId : cManager.getCameraIdList()){
CameraCharacteristics characteristics = cManager.getCameraCharacteristics(cameraId);
int cOrientation = characteristics.get(CameraCharacteristics.LENS_FACING);
if(cOrientation == CameraCharacteristics.LENS_FACING_FRONT) return cameraId;
}
return null;
}
有关Camera2 Api的更多信息,您可以看到这里
https://stackoverflow.com/questions/38761515
复制相似问题