From b515605e0bd15fbaa7b7dd978cf5b043184b7c43 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Sat, 7 Sep 2013 16:13:54 +0100 Subject: crash on camera open --- src/com/example/rotorm/MainActivity.java | 65 ++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 4 deletions(-) (limited to 'src/com/example/rotorm') diff --git a/src/com/example/rotorm/MainActivity.java b/src/com/example/rotorm/MainActivity.java index c88d6fd..5039dc9 100644 --- a/src/com/example/rotorm/MainActivity.java +++ b/src/com/example/rotorm/MainActivity.java @@ -4,6 +4,7 @@ package com.example.rotorm; import java.io.File; import java.io.IOException; import java.util.Date; +import java.util.List; import com.example.rotorm.R; @@ -28,7 +29,7 @@ public class MainActivity extends Activity implements Callback { @Override protected void onDestroy() { - //stopRecording(); + stopRecording(); super.onDestroy(); } @@ -98,6 +99,56 @@ public class MainActivity extends Activity implements Callback { protected void startPreview() throws IOException { //http://stackoverflow.com/questions/12098298/android-camera-app-passed-null-surface + //http://developer.android.com/training/camera/cameradirect.html + + if (mCamera!=null){ + Log.e("Rotor", "Nulling camera"); + mCamera.stopPreview(); + mCamera.setPreviewCallback(null); + mCamera.release(); + mCamera=null; + } + + if(mCamera == null){ + mCamera = Camera.open(); + Log.e("Rotor", "Setting up camera"); + + /* + Camera.Parameters parameters = mCamera.getParameters(); + //get a list of supported preview sizes and assign one + List previewSizes = parameters.getSupportedPreviewSizes(); + Camera.Size previewSize = previewSizes.get(0); + parameters.setPreviewSize(previewSize.width, previewSize.height); + //Set Frame rate + parameters.setPreviewFrameRate(25); + //Set Scene + List modes = parameters.getSupportedSceneModes(); + parameters.setSceneMode(modes.get(0)); + //Set focus mode + List focus = parameters.getSupportedFocusModes(); + parameters.setFocusMode(focus.get(0)); + + + */ + + + + + + Camera.Parameters parameters = mCamera.getParameters(); + parameters.setPreviewSize(1280,720); + parameters.setPreviewFrameRate(25); + parameters.setSceneMode(Camera.Parameters.SCENE_MODE_SPORTS); + parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); + parameters.setColorEffect(Camera.Parameters.EFFECT_NONE); + mCamera.setParameters(parameters); + + //Apply parameters to camera object + mCamera.setParameters(parameters); + Log.e("Rotor", "Camera configured"); + } + + if(mCamera==null) mCamera = Camera.open(); setContentView(R.layout.main); @@ -108,9 +159,15 @@ public class MainActivity extends Activity implements Callback { surfaceHolder.addCallback(this); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); - //mCamera.lock(); - //mCamera.unlock(); - + mCamera.lock(); + mCamera.unlock(); + + ////crashes on nexus 10 + //09-07 15:36:21.850: E/AndroidRuntime(5418): java.lang.RuntimeException: getParameters failed (empty parameters) + + //Start the preview + Log.e("Rotor", "Starting preview"); + //mCamera.setPreviewCallback(new cam_PreviewCallback()); mCamera.setPreviewDisplay(surfaceHolder); mCamera.startPreview(); -- cgit v1.2.3