在android

时间:2016-08-04 07:52:56

标签: android android-camera camera2

我正在使用android.hardware.camera2 ...

在android中创建一个相机

我提到this link

但是,我不知道如何切换前置摄像头和后置摄像头。

请提出建议!

1 个答案:

答案 0 :(得分:1)

首先从设备获取相机ID列表 我们可以使用 CameraManager 来迭代系统中可用的所有摄像机,每个摄像机都有一个指定的cameraId。使用cameraId,我们可以获得指定摄像机设备的属性。这些属性由CameraCharacteristics类表示。类似于#34;它是前置或后置摄像头","支持输出分辨率"可以在那里查询。

  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的更多信息,您可以看到Here