调用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这个设置。