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

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

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值