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這個設置。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章