From 9217095955edf2ab35647f5a40dcc676163dba63 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Thu, 25 Oct 2012 15:45:18 +0400 Subject: [PATCH] Issue 2472 Android samples crash on Camera.StartPreview on Android 4.1 fixed. --- .../java/generator/src/java/android+JavaCameraView.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/java/generator/src/java/android+JavaCameraView.java b/modules/java/generator/src/java/android+JavaCameraView.java index e3e80c61ca..6e2b6cadef 100644 --- a/modules/java/generator/src/java/android+JavaCameraView.java +++ b/modules/java/generator/src/java/android+JavaCameraView.java @@ -40,6 +40,8 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb private Thread mThread; private boolean mStopThread; + private SurfaceTexture mSurfaceTexture; + public static class JavaCameraSizeAccessor implements ListItemAccessor { public int getWidth(Object obj) { @@ -101,6 +103,7 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb Size frameSize = calculateCameraFrameSize(sizes, new JavaCameraSizeAccessor(), width, height); params.setPreviewFormat(ImageFormat.NV21); + Log.d(TAG, "Set preview size to " + Integer.valueOf((int)frameSize.width) + "x" + Integer.valueOf((int)frameSize.height)); params.setPreviewSize((int)frameSize.width, (int)frameSize.height); List FocusModes = params.getSupportedFocusModes(); @@ -127,9 +130,9 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb AllocateCache(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - SurfaceTexture tex = new SurfaceTexture(MAGIC_TEXTURE_ID); + mSurfaceTexture = new SurfaceTexture(MAGIC_TEXTURE_ID); getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); - mCamera.setPreviewTexture(tex); + mCamera.setPreviewTexture(mSurfaceTexture); } else mCamera.setPreviewDisplay(null); } catch (IOException e) {