From 9e0a11c5d7a7c7233899df20d107cb9300d15c59 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 13 Jun 2016 22:15:52 +0200 Subject: [PATCH] init video recorder only when the surface is ready --- .../com/simplemobiletools/camera/MainActivity.java | 11 +++++------ .../java/com/simplemobiletools/camera/Preview.java | 4 ++++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/simplemobiletools/camera/MainActivity.java b/app/src/main/java/com/simplemobiletools/camera/MainActivity.java index ab42f194..9b693454 100644 --- a/app/src/main/java/com/simplemobiletools/camera/MainActivity.java +++ b/app/src/main/java/com/simplemobiletools/camera/MainActivity.java @@ -188,20 +188,20 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen toggleCameraBtn.setVisibility(View.VISIBLE); if (isPhoto) { - initPhoto(); + initPhotoButtons(); } else { - initVideo(); + initVideoButtons(); } } - private void initPhoto() { + private void initPhotoButtons() { final Resources res = getResources(); togglePhotoVideoBtn.setImageDrawable(res.getDrawable(R.mipmap.videocam)); shutterBtn.setImageDrawable(res.getDrawable(R.mipmap.camera)); preview.initPhotoMode(); } - private void initVideo() { + private void initVideoButtons() { final Resources res = getResources(); togglePhotoVideoBtn.setImageDrawable(res.getDrawable(R.mipmap.photo)); shutterBtn.setImageDrawable(res.getDrawable(R.mipmap.video_rec)); @@ -258,8 +258,7 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen } if (!isPhoto) { - preview.initRecorder(); - initVideo(); + initVideoButtons(); } } diff --git a/app/src/main/java/com/simplemobiletools/camera/Preview.java b/app/src/main/java/com/simplemobiletools/camera/Preview.java index ab4829d1..e8572a7f 100644 --- a/app/src/main/java/com/simplemobiletools/camera/Preview.java +++ b/app/src/main/java/com/simplemobiletools/camera/Preview.java @@ -236,6 +236,10 @@ public class Preview extends ViewGroup implements SurfaceHolder.Callback, View.O @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { setupPreview(); + + if (isVideoMode) { + initRecorder(); + } } private void setupPreview() {