2016-11-10 215 views
1

我正在从我的相机拍摄的照片,一切似乎不错,我用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被称为每次我尝试更换相机)

如何正确解决这个问题,以便在所有设备上正常工作?

回答

2

您是否检查CameraManager是否给您提供2个可用的相机?使用cameraManager.getCameraIdList()进行检查。还记得使用CameraCharacteristics以获得每个摄像头的右侧预览尺寸:

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

做到这一点使用一个值来初始化你预览,如果您使用的是相同的值的正面和背面摄像头,也许你有后它的问题会导致您的前置摄像头不支持该分辨率大小。

+0

感谢您的回复,我想这就是问题所在,日志表明,与有时找到合适的分辨率大小的问题,有时预览被拉伸。我可以找到您可以在面对相机和背部相机之间切换的示例,有没有? –

+0

即时通讯面临同样的问题,当我切换相机有时预览延伸,你有没有找到一个解决方案呢? – Andrea

+0

太棒了!在切换相机时,我被困在了正确的预览尺寸上。谢谢! :) – Debdeep

相关问题