[英]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.