init video recorder only when the surface is ready

This commit is contained in:
tibbi 2016-06-13 22:15:52 +02:00
parent e04be7886f
commit 9e0a11c5d7
2 changed files with 9 additions and 6 deletions

View File

@ -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();
}
}

View File

@ -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() {