[英]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. 它在startPreview
和stopPreview
调用之间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.