2016-08-04 67 views
0

我创造的机器人使用android.hardware.camera2相机背面camera2 ...开关前,在机器人

我提到this link

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

请给出建议!

回答

1

首先得到摄像机ID列表从设备 我们可以使用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的更多信息,你可以看到Here