简体   繁体   English

对焦后Android相机takePicture失败

[英]Android camera takePicture failed after focus

Following code uses to get jpeg-photo from camera 以下代码用于从相机获取jpeg照片

public void getPhoto(final PictureCallback callback, final Runnable focusFailCallback) {
    if(!Camera.Parameters.FOCUS_MODE_FIXED.equals(mCamera.getParameters().getFocusMode()) &&
            !Camera.Parameters.FOCUS_MODE_INFINITY.equals(mCamera.getParameters().getFocusMode())) {
        mCamera.autoFocus(new AutoFocusCallback() {
            @Override
            public void onAutoFocus(boolean success, Camera camera) {
                if(success) {
                    camera.takePicture(null, null, null, callback);
                } else {
                    camera.cancelAutoFocus();
                    focusFailCallback.run();
                }
            }
        });
    } else {
        mCamera.takePicture(null, null, null, callback);
    }
}

Mostly it works fine. 通常情况下,它运作良好。 It calls between startPreview and stopPreview calls, so I have not problems about that. 它在startPreviewstopPreview调用之间stopPreview调用,因此我对此没有问题。 But at random moments it can throw exception. 但是在随机时刻,它可能会引发异常。

java.lang.RuntimeException: takePicture failed
android.hardware.Camera.native_takePicture(Native Method)
android.hardware.Camera.takePicture(Camera.java:1828)
org.opencv.android.JavaCameraView$2.onAutoFocus(JavaCameraView.java:463)
android.hardware.Camera$EventHandler.handleMessage(Camera.java:1273)
android.os.Handler.dispatchMessage(Handler.java:111)
android.os.Looper.loop(Looper.java:194)
android.app.ActivityThread.main(ActivityThread.java:5534)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:955)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)

I have no idea what could happen that I didn't provide for. 我不知道我没有规定会发生什么。

我曾在一个摩托E3和其他一些设备,并调用了同样的问题cancelAutoFocus权利之前camera.takePicture作出的崩溃消失。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM