Android启用摄像头失败或者黑屏问题的几点原因

在 Android 开发中接触 Camera 的过程中,经常会碰到各种各样的问题,对于启用摄像头失败或者黑屏的情况,本人总结了一下几点原因,欢迎大家继续补充:

 

1.手机没有对应摄像头

例如手机可能只有两个摄像头,下标从0开始,Camera.open(2)打开的是第3个摄像头就会出问题

    private void openCamera(int cameraFacing) throws RuntimeException {
        releaseCamera();
        Camera.CameraInfo info = new Camera.CameraInfo();
        for (int i = 0; i < Camera.getNumberOfCameras(); i++) {
            Camera.getCameraInfo(i, info);
            if (info.facing == cameraFacing) {
                mCamera = Camera.open(i); // 打开对应的摄像头,获取到camera实例
                mIsOpened = true;
                return;
            }
        }
    }

 

2.应用没有对应权限或者对应权限没有打开

在 AndroidManifest.xml 加上对应权限

<uses-permission android:name="android.permission.CAMERA" />

再检查你的应用对应的权限是否打开,建议加上 动态权限 检查。

 

 

3.代码中使用了手机不支持的预览尺寸

可以通过如下代码查看你的手机支持的预览尺寸有哪些(不同手机支持的预览大小不一样)

List<Size> previewSizes = mCamera.getParameters().getSupportedPreviewSizes();
for (int i = 0; i < previewSizes.size(); i++) {
    Size psize = previewSizes.get(i);
    Log.i(TAG + "initCamera", "PreviewSize,width: " + psize.width + " height: " + psize.height);
}

之后查看log就可以看到了

 

 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值