diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Full1PictureRecorder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Full1PictureRecorder.java index c5a17077..0d099e78 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Full1PictureRecorder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/picture/Full1PictureRecorder.java @@ -72,6 +72,8 @@ public class Full1PictureRecorder extends FullPictureRecorder { mResult.rotation = exifRotation; LOG.i("take(): starting preview again. ", Thread.currentThread()); + // It's possible that by the time this callback is invoked, we're not previewing + // anymore, so check before restarting preview. if (mEngine.getState().isAtLeast(CameraState.PREVIEW)) { camera.setPreviewCallbackWithBuffer(mEngine); Size previewStreamSize = mEngine.getPreviewStreamSize(Reference.SENSOR); @@ -86,9 +88,8 @@ public class Full1PictureRecorder extends FullPictureRecorder { previewStreamSize, mEngine.getAngles() ); + camera.startPreview(); } - - camera.startPreview(); // This is needed, read somewhere in the docs. dispatchResult(); } }