android camera setParameters failed 类问题分析总结
来源:互联网 发布:mac过热 编辑:程序博客网 时间:2024/05/17 08:42
LOG显示为:
09-01 18:47:17.348 15656 15675 E AndroidRuntime: FATAL EXCEPTION: Camera Handler Thread
09-01 18:47:17.348 15656 15675 E AndroidRuntime: Process: com.Android.camera, PID: 15656
09-01 18:47:17.348 15656 15675 E AndroidRuntime: java.lang.RuntimeException: setParameters failed
09-01 18:47:17.348 15656 15675 E AndroidRuntime: at android.hardware.Camera.native_setParameters(Native Method)
09-01 18:47:17.348 15656 15675 E AndroidRuntime: at android.hardware.Camera.setParameters(Camera.java:1760)
09-01 18:47:17.348 15656 15675 E AndroidRuntime: at com.android.camera.CameraManager$CameraHandler.handleMessage(CameraManager.java:260)
09-01 18:47:17.348 15656 15675 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
09-01 18:47:17.348 15656 15675 E AndroidRuntime: at android.os.Looper.loop(Looper.java:136)
09-01 18:47:17.348 15656 15675 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:61)
最终查到:
09-01 18:47:17.338 235 4175 E QCameraParameters: int32_t qcamera::QCameraParameters::setZoom(const qcamera::QCameraParameters&): invalid value -1 out of (0, 60)
setZoom 的值存在异常。
解决方案就是在 setZoom 的时候,先检查 mZoomValue 是否合法,如果不合法,则 return 掉。
后面在网上查了一下 camera setParameters failed 同类的错误,大部分都是因为 previewSize 或者 pictureSize 设置不合理(即底层不支持)造成的。
最终有网友给出的方法就是找到一个支持的尺寸再设下去。例如:
[java] view plain copy
try { int PreviewWidth = 0; int PreviewHeight = 0; WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);//获取窗口的管理器 Display display = wm.getDefaultDisplay();//获得窗口里面的屏幕 Camera.Parameters parameters = mCamera.getParameters(); // 选择合适的预览尺寸 List<Camera.Size> sizeList = parameters.getSupportedPreviewSizes(); // 如果sizeList只有一个我们也没有必要做什么了,因为就他一个别无选择 if (sizeList.size() > 1) { Iterator<Camera.Size> itor = sizeList.iterator(); while (itor.hasNext()) { Camera.Size cur = itor.next(); if (cur.width >= PreviewWidth && cur.height >= PreviewHeight) { PreviewWidth = cur.width; PreviewHeight = cur.height; break; } } } parameters.setPreviewSize(PreviewWidth, PreviewHeight); //获得摄像区域的大小 parameters.setPreviewFrameRate(3);//每秒3帧 每秒从摄像头里面获得3个画面 parameters.setPictureFormat(PixelFormat.JPEG);//设置照片输出的格式 parameters.set("jpeg-quality", 85);//设置照片质量 parameters.setPictureSize(PreviewWidth, PreviewHeight);//设置拍出来的屏幕大小 // mCamera.setParameters(parameters);//把上面的设置 赋给摄像头 mCamera.setPreviewDisplay(mySurfaceView.getHolder());//把摄像头获得画面显示在SurfaceView控件里面 mCamera.startPreview();//开始预览 mPreviewRunning = true; } catch (IOException e) { Log.e(TAG, e.toString()); }
当然,这也不失为一种好的方法。我们碰到这类问题时,也可以将支持的 previewSize 或者 pictureSize 以log的形式打印出来看:
[java] view plain copy
//List<Size> pictureSizes = mCameraDevice.getCamera().getParameters().getSupportedPictureSizes(); List<Size> pictureSizes = mParameters.getSupportedPictureSizes(); int length = pictureSizes.size(); for (int i = 0; i < length; i++) { LOGD("SupportedPictureSizes : " + pictureSizes.get(i).width + "x" + pictureSizes.get(i).height); } //List<Size> previewSizes = mCameraDevice.getCamera().getParameters().getSupportedPreviewSizes(); List<Size> previewSizes = mParameters.getSupportedPreviewSizes(); length = previewSizes.size(); for (int i = 0; i < length; i++) { LOGD("SupportedPreviewSizes : " + previewSizes.get(i).width + "x" + previewSizes.get(i).height); }
总结:
setParameters failed 错误肯定是某一个参数设置错了导致的。仔细查看该错误附近的log,总能找到导致问题发生的原凶!
- android camera setParameters failed 类问题分析总结
- android camera setParameters failed 类问题分析总结
- android camera setParameters failed 类问题分析总结
- android camera setParameters failed
- android camera setParameters failed
- camera.setParameters failed in android
- Android camera setParameters failed 错误解决方法
- Android调用camera错误setParameters failed深层解析
- Android调用camera错误setParameters failed深层解析
- Android调用camera错误setParameters failed深层解析
- android Camera setParameters fialed
- 关于android camera setParameters 出错
- setParameters, failed
- 相机camera.setParameters(parameters)方法出现java.lang.RuntimeException: setParameters failed
- 相机 android java.lang.RuntimeException: setParameters failed
- android 相机报错 setParameters failed
- android 编译 failed(camera问题) -01
- android自定义相机,解决预览扭曲,隐藏setParameters failed
- volatile与synchronized
- linux下jpeg图片Exif标识
- Android 对本地图片进行压缩处理
- 持久层框架综述
- 2016icpc网络赛——沈阳赛区
- android camera setParameters failed 类问题分析总结
- AS3中实现多样化的A标签
- React与ES6(四)ES6如何处理React mixins
- 树莓派更新镜像源于镜像源推荐
- javascript实现页面中回到顶部功能
- Android Studio JNI开发基础篇
- dedecms标签大全(非常经典)
- 日期工具:日期转换、加减、比较 --DateUtils
- 如何入驻O盟