安卓:背部和前置摄像头之间切换Camera2
问题描述:
我正在从我的相机拍摄的照片,一切似乎不错,我用Camera2Basic样本,这个代码仅offre相机背面,所以我增加了一个按钮来切换2个相机这样的:安卓:背部和前置摄像头之间切换Camera2
布尔facingCamera = 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);
做到这一点使用一个值来初始化你预览,如果您使用的是相同的值的正面和背面摄像头,也许你有后它的问题会导致您的前置摄像头不支持该分辨率大小。
感谢您的回复,我想这就是问题所在,日志表明,与有时找到合适的分辨率大小的问题,有时预览被拉伸。我可以找到您可以在面对相机和背部相机之间切换的示例,有没有? –
即时通讯面临同样的问题,当我切换相机有时预览延伸,你有没有找到一个解决方案呢? – Andrea
太棒了!在切换相机时,我被困在了正确的预览尺寸上。谢谢! :) – Debdeep