异常 java.lang.RuntimeException: setParameters 失败

Sim*_*der 4 parameters android video-capture android-camera

我收到以下错误

Exception java.lang.RuntimeException: setParameters failed
android.hardware.Camera.native_setParameters (Camera.java)
android.hardware.Camera.setParameters (Camera.java:1946)
Run Code Online (Sandbox Code Playgroud)

在下面的代码中。我不知道我在下面做错了什么。

        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);
Run Code Online (Sandbox Code Playgroud)

此错误主要发生在三星等某些设备中。请求帮助。提前致谢。

Irc*_*ver 6

设备可能不支持您的参数。您可以使用类的getSupportedFocusModes方法检测可用的对焦模式Camera.Parameters。如果某些模式不包含在此列表中,则您无法将其设置为您的相机。

编辑

正如亚历克斯在评论中所说,您可以在 logcat 中看到错误消息。

  • 其他参数也是如此。在某些设备上,事情可能会变得非常奇怪,例如选择场景模式可能与焦点模式相矛盾,等等。在您没有专门验证的设备上安全转向的唯一方法是始终在 setParameters() 上捕获 RuntimeException,并调用getParameters() 紧随其后,因为 setParameters() 也可能会静默失败。有时,logcat(用于系统摄像头服务)可以提示您出了什么问题。 (2认同)