Skip to content

Commit

Permalink
Fixed crash when open camera fail in LiveCameraView
Browse files Browse the repository at this point in the history
  • Loading branch information
YOOJIA.CHEN committed Oct 8, 2016
1 parent 92e6e12 commit cf5c325
Showing 1 changed file with 14 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import android.util.AttributeSet;
import android.util.Log;
import android.view.SurfaceHolder;
import android.widget.Toast;

/**
* @author Yoojia Chen (yoojiachen@gmail.com)
Expand Down Expand Up @@ -39,7 +40,7 @@ public void onPreviewFrame(byte[] data, Camera camera) {

private final DelayedFocusLooper mFocusLooper = new DelayedFocusLooper() {

private final Camera.AutoFocusCallback mNop = new Camera.AutoFocusCallback() {
private final Camera.AutoFocusCallback mHandler = new Camera.AutoFocusCallback() {
@Override public void onAutoFocus(boolean success, Camera camera) {
if (success){
camera.setOneShotPreviewCallback(mPreviewCallback);
Expand All @@ -50,22 +51,26 @@ public void onPreviewFrame(byte[] data, Camera camera) {
};

@Override public void callAutoFocus() {
mCamera.autoFocus(mNop);
mCamera.autoFocus(mHandler);
}
};

@Override
public void surfaceCreated(SurfaceHolder holder) {
mCamera = Cameras.openBackDefault();
setCamera(mCamera);
if (mCamera != null){
setCamera(mCamera);
}
super.surfaceCreated(holder);
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
super.surfaceDestroyed(holder);
mFocusLooper.stop();
mCamera.release();
if (mCamera != null){
mCamera.release();
}
}

/**
Expand All @@ -75,7 +80,11 @@ public void surfaceDestroyed(SurfaceHolder holder) {
*/
public void startAutoCapture(int delay, CaptureCallback captureCallback) {
mCaptureCallback = captureCallback;
mFocusLooper.start(delay);
if (mCamera != null){
mFocusLooper.start(delay);
}else{
Toast.makeText(getContext(), "OPEN CAMERA FAIL", Toast.LENGTH_SHORT).show();
}
}

/**
Expand Down

0 comments on commit cf5c325

Please sign in to comment.