繁体   English   中英

Android:Camera2在前后摄像头之间切换

[英]Android: Camera2 switching between back and front camera

我正在使用相机拍摄照片,并且一切似乎都很好,我使用的是Camera2Basic示例,此代码仅使后置摄像头偏斜,因此我添加了一个按钮,可以在2个摄像头之间切换,如下所示:

布尔型FaceingCamera = true; //初始化

onClick() {
    facingCamera = !facingCamera;
    closeCamera();
    openCamera(mTextureView.getWidth(), mTextureView.getHeight()); 
}

我改变了方法setUpCameraOutputs这样的代码:

if (facing != null && facing == CameraCharacteristics.LENS_FACING_FRONT ) {
    continue;
}

if (facing != null && facing == CameraCharacteristics.LENS_FACING_FRONT && !facingCamera 
|| facing != null && facing == CameraCharacteristics.LENS_FACING_BACK && facingCamera ) {
    continue;
}

Nexus 4可以正常工作,但LG-D802不能正常工作(每次尝试更换相机时都会调用onConfigureFailed)

如何正确修复此问题,使其在所有设备上都能正常工作?

您是否检查了CameraManager是否为您提供了2个可用的相机? 使用cameraManager.getCameraIdList()进行检查。 还记得使用CameraCharacteristics为每个摄像机获取正确的预览尺寸:

StreamConfigurationMap rearMap = rearCameraCharacteristics.get(
      CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
StreamConfigurationMap frontMap = frontCameraCharacteristics.get(
      CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);

之后,使用该值之一初始化预览,如果前后摄像头使用相同的值,则可能会遇到问题,因为前置摄像头不支持该分辨率大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM