From 54001572d5a6f49810e110531bde3ed26957b3b3 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 10 Apr 2012 09:02:50 +0000 Subject: [PATCH] Setting camera parameters on Android 2.2.2 fixed. Old Android does not support continuous-video focus mode. --- .../org/opencv/samples/tutorial0/SampleViewBase.java | 10 ++++++++-- .../org/opencv/samples/tutorial1/SampleViewBase.java | 8 +++++++- .../org/opencv/samples/tutorial3/SampleViewBase.java | 8 +++++++- .../org/opencv/samples/tutorial4/SampleViewBase.java | 8 +++++++- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/samples/android/tutorial-0-androidcamera/src/org/opencv/samples/tutorial0/SampleViewBase.java b/samples/android/tutorial-0-androidcamera/src/org/opencv/samples/tutorial0/SampleViewBase.java index cf31d5fe8..084092f50 100644 --- a/samples/android/tutorial-0-androidcamera/src/org/opencv/samples/tutorial0/SampleViewBase.java +++ b/samples/android/tutorial-0-androidcamera/src/org/opencv/samples/tutorial0/SampleViewBase.java @@ -71,9 +71,15 @@ public abstract class SampleViewBase extends SurfaceView implements SurfaceHolde } params.setPreviewSize(getFrameWidth(), getFrameHeight()); - params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); + + List FocusModes = params.getSupportedFocusModes(); + if (FocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) + { + params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); + } + mCamera.setParameters(params); - + /* Now allocate the buffer */ params = mCamera.getParameters(); int size = params.getPreviewSize().width * params.getPreviewSize().height; diff --git a/samples/android/tutorial-1-addopencv/src/org/opencv/samples/tutorial1/SampleViewBase.java b/samples/android/tutorial-1-addopencv/src/org/opencv/samples/tutorial1/SampleViewBase.java index 9c734e656..4515976bb 100644 --- a/samples/android/tutorial-1-addopencv/src/org/opencv/samples/tutorial1/SampleViewBase.java +++ b/samples/android/tutorial-1-addopencv/src/org/opencv/samples/tutorial1/SampleViewBase.java @@ -71,7 +71,13 @@ public abstract class SampleViewBase extends SurfaceView implements SurfaceHolde } params.setPreviewSize(getFrameWidth(), getFrameHeight()); - params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); + + List FocusModes = params.getSupportedFocusModes(); + if (FocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) + { + params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); + } + mCamera.setParameters(params); /* Now allocate the buffer */ diff --git a/samples/android/tutorial-3-native/src/org/opencv/samples/tutorial3/SampleViewBase.java b/samples/android/tutorial-3-native/src/org/opencv/samples/tutorial3/SampleViewBase.java index bd7fb8cb3..d220edab5 100644 --- a/samples/android/tutorial-3-native/src/org/opencv/samples/tutorial3/SampleViewBase.java +++ b/samples/android/tutorial-3-native/src/org/opencv/samples/tutorial3/SampleViewBase.java @@ -70,7 +70,13 @@ public abstract class SampleViewBase extends SurfaceView implements SurfaceHolde } params.setPreviewSize(getFrameWidth(), getFrameHeight()); - params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); + + List FocusModes = params.getSupportedFocusModes(); + if (FocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) + { + params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); + } + mCamera.setParameters(params); /* Now allocate the buffer */ diff --git a/samples/android/tutorial-4-mixed/src/org/opencv/samples/tutorial4/SampleViewBase.java b/samples/android/tutorial-4-mixed/src/org/opencv/samples/tutorial4/SampleViewBase.java index f0d8bf6ab..446f28efb 100644 --- a/samples/android/tutorial-4-mixed/src/org/opencv/samples/tutorial4/SampleViewBase.java +++ b/samples/android/tutorial-4-mixed/src/org/opencv/samples/tutorial4/SampleViewBase.java @@ -70,7 +70,13 @@ public abstract class SampleViewBase extends SurfaceView implements SurfaceHolde } params.setPreviewSize(getFrameWidth(), getFrameHeight()); - params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); + + List FocusModes = params.getSupportedFocusModes(); + if (FocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) + { + params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); + } + mCamera.setParameters(params); /* Now allocate the buffer */