我收到以下错误
Exception java.lang.RuntimeException: setParameters failed
android.hardware.Camera.native_setParameters (Camera.java)
android.hardware.Camera.setParameters (Camera.java:1946)
在下面的代码中。我不知道我在下面做了什么错。
Camera mCamera = Camera.open();
Parameters params = mCamera.getParameters();
if (params.getFlashMode() != null)
params.setFlashMode(Parameters.FLASH_MODE_OFF);
if (nightMode && params.getSceneMode() != null)
params.setSceneMode(Parameters.SCENE_MODE_NIGHT);
if (params.getSupportedFocusModes().contains(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
params.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
} else if (params.getSupportedFocusModes().contains(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
params.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
} else if (params.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_INFINITY)) {
params.setFocusMode(Parameters.FOCUS_MODE_INFINITY);
}
mCamera.setParameters(params);
这种错误主要发生在三星等设备上。 请求帮助。谢谢。
答案 0 :(得分:4)
设备不支持您的参数。您可以使用Camera.Parameters
类的getSupportedFocusModes
方法检测可用的焦点模式。如果此列表中不包含某些模式,则无法将其设置为相机。
修改强>
正如Alex在评论中所说,您可以在logcat中看到错误消息。
答案 1 :(得分:0)
您必须检查用户设备支持的对焦模式(不是所有设备都具有相机对焦模式),您可以这样做:
public boolean support_focus(Camera camera){
Camera.Parameters parameters = camera.getParameters();
List<String> focusModes = parameters.getSupportedFocusModes();
if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO))
return true;
else
return false;
}
检查设备是否支持FOCUS_MODE_AUTO,并使用所需的参数进行更改。