summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2013-09-07 16:13:54 +0100
committerTim Redfern <tim@eclectronics.org>2013-09-07 16:13:54 +0100
commitb515605e0bd15fbaa7b7dd978cf5b043184b7c43 (patch)
treed8ac8b2b622a8b25eb1915dfe3b875df707c0502
parent65bff27967c6791dd9ee488ed425be35f515b3e0 (diff)
crash on camera open
-rw-r--r--bin/classes.dexbin627160 -> 627952 bytes
-rw-r--r--bin/classes/com/example/rotorm/MainActivity.classbin7099 -> 7812 bytes
-rw-r--r--bin/resources.ap_bin41373 -> 41373 bytes
-rw-r--r--src/com/example/rotorm/MainActivity.java65
4 files changed, 61 insertions, 4 deletions
diff --git a/bin/classes.dex b/bin/classes.dex
index 3ab90a9..062f897 100644
--- a/bin/classes.dex
+++ b/bin/classes.dex
Binary files differ
diff --git a/bin/classes/com/example/rotorm/MainActivity.class b/bin/classes/com/example/rotorm/MainActivity.class
index 44b3a35..66fbba6 100644
--- a/bin/classes/com/example/rotorm/MainActivity.class
+++ b/bin/classes/com/example/rotorm/MainActivity.class
Binary files differ
diff --git a/bin/resources.ap_ b/bin/resources.ap_
index 93b621a..24abaf8 100644
--- a/bin/resources.ap_
+++ b/bin/resources.ap_
Binary files differ
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<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes();
+ Camera.Size previewSize = previewSizes.get(0);
+ parameters.setPreviewSize(previewSize.width, previewSize.height);
+ //Set Frame rate
+ parameters.setPreviewFrameRate(25);
+ //Set Scene
+ List<String> modes = parameters.getSupportedSceneModes();
+ parameters.setSceneMode(modes.get(0));
+ //Set focus mode
+ List<String> 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();