当前位置: 代码迷 >> 综合 >> android camera报错java.lang.RuntimeException: getParameters failed (empty parameters)
  详细解决方案

android camera报错java.lang.RuntimeException: getParameters failed (empty parameters)

热度:39   发布时间:2023-12-12 11:52:31.0

调用Camera.Parameters params = mCamera.getParameters();报错:

java.lang.RuntimeException: getParameters failed (empty parameters)
    at android.hardware.Camera.native_getParameters(Native Method)
    at android.hardware.Camera.getParameters(Camera.java:1662)

 

原因是,getParameters不能在mCamera.startPreview()之后获取。所以如果有什么参数要获取的话,比如获取相机支持的预览尺寸:

List<Camera.Size> sizes = mCamera.getParameters().getSupportedPreviewSizes();

这个就要在mCamera.startPreview()之前完成。

 

顺便说下,设置相机预览尺寸一般这么写:

CamcorderProfile mProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_1080P);
mediaRecorder.setVideoSize(mProfile.videoFrameWidth, mProfile.videoFrameHeight);

但有些手机不支持1080的分辨率,会直接崩溃

报错

java.lang.RuntimeException: start failed.  at android.media.MediaRecorder.start(Native Method)

所以要先调用getSupportedPreviewSizes获取相机支持的分辨率,再设置setVideoSize,而不是像有些文章里说的注释掉setVideoSize这个设置。

 

 

 

 

  相关解决方案