From 603cb36a5123e46656b06a5deb8d7ac7ff81307f Mon Sep 17 00:00:00 2001 From: 554325746@qq.com <554325746@qq.com> Date: 星期三, 25 十二月 2019 08:48:51 +0800 Subject: [PATCH] a --- app/src/main/java/com/basic/security/widget/PreviewBase.java | 26 ++++++++++++++++---------- 1 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/basic/security/widget/PreviewBase.java b/app/src/main/java/com/basic/security/widget/PreviewBase.java index 840a046..7875769 100644 --- a/app/src/main/java/com/basic/security/widget/PreviewBase.java +++ b/app/src/main/java/com/basic/security/widget/PreviewBase.java @@ -63,14 +63,14 @@ @Override public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) { -// System.out.println("PreviewBase.onSurfaceTextureAvailable"); +// System1.out.println("PreviewBase.onSurfaceTextureAvailable"); mFinished = false; try { mCamera = Camera.open(rgb_gray_camera); Camera.Parameters parameters = mCamera.getParameters(); parameters.setPreviewSize(640, 480); if (null == mCamera) { - System.out.println("Preview.onSurfaceTextureAvailable no front facing camera "); + System1.out.println("Preview.onSurfaceTextureAvailable no front facing camera "); } /* This doesn't work @@ -94,7 +94,7 @@ /* Tell the camera to write onto our textureView mTextureView */ mCamera.setPreviewTexture(surfaceTexture); mCamera.setPreviewCallback((data, camera) -> { -// System.out.println("PreviewBase.onSurfaceTextureAvailable setPreviewCallback"); +// System1.out.println("PreviewBase.onSurfaceTextureAvailable setPreviewCallback"); lastTimeOnPreviewFrame = System.currentTimeMillis(); if (Constants.indoorOutdoorInOne) { if (secondDisplayRunnable.isNotRunning()) { @@ -109,14 +109,14 @@ try { if (rgb_gray_camera == Constants.RGB_CAMERA) { OutdoorGuestSocketServer.setCameraData(data); -// System.out.println("PreviewBase.onSurfaceTextureAvailable 0"); +// System1.out.println("PreviewBase.onSurfaceTextureAvailable 0"); if (BaseApplication.getApplication().activity != null && BaseApplication.getApplication().activity.shouldDetectFace()) { -// System.out.println("PreviewBase.onSurfaceTextureAvailable 1"); +// System1.out.println("PreviewBase.onSurfaceTextureAvailable 1"); if (!((Preview) PreviewBase.this).rgbThread.isRunning) { if (Constants.USE_GRAY_CAMERA) { byte[] grayBgrData = ((Preview) PreviewBase.this).getMostMatchGrayBgrData(); -// System.out.println("PreviewBase.onSurfaceTextureAvailable 2 grayBgrData="+grayBgrData); +// System1.out.println("PreviewBase.onSurfaceTextureAvailable 2 grayBgrData="+grayBgrData); if (grayBgrData != null) { try { ((Preview) PreviewBase.this).grayThread.onPreviewFrame(grayBgrData, camera, Constants.GRAY_CAMERA); @@ -129,7 +129,7 @@ } ((Preview) PreviewBase.this).rgbThread.isRunning = true; ((Preview) PreviewBase.this).rgbThread.onPreviewFrame(data, camera, Constants.RGB_CAMERA); -// System.out.println("PreviewBase.onSurfaceTextureAvailable rgbExecutorService.execute(((Preview) PreviewBase.this).rgbThread)"); +// System1.out.println("PreviewBase.onSurfaceTextureAvailable rgbExecutorService.execute(((Preview) PreviewBase.this).rgbThread)"); rgbExecutorService.execute(((Preview) PreviewBase.this).rgbThread); } } @@ -144,12 +144,14 @@ mCamera.startPreview(); } catch (IOException ioe) { Log.e("camera-reverse", ioe.getMessage()); + mCamera = null; + mFinished = true; } } @Override public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int width, int height) { -// System.out.println("PreviewBase.onSurfaceTextureSizeChanged"); +// System1.out.println("PreviewBase.onSurfaceTextureSizeChanged"); Matrix matrix = new Matrix(); matrix.setScale(-1, 1); //move it back to in view otherwise it'll be off to the left. @@ -160,22 +162,26 @@ mCamera.setPreviewTexture(surfaceTexture); } catch (IOException e) { e.printStackTrace(); + mCamera = null; + mFinished = true; + } } @Override public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { -// System.out.println("PreviewBase.onSurfaceTextureDestroyed"); +// System1.out.println("PreviewBase.onSurfaceTextureDestroyed"); mFinished = true; if (null != mCamera) { mCamera.stopPreview(); mCamera.release(); + mCamera = null; } return true; } @Override public void onSurfaceTextureUpdated(SurfaceTexture surface) { -// System.out.println("PreviewBase.onSurfaceTextureUpdated"); +// System1.out.println("PreviewBase.onSurfaceTextureUpdated"); } } -- Gitblit v1.8.0