@Override public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { // If your preview can change or rotate, take care of those events here. // Make sure to stop the preview before resizing or reformatting it. Log.d(TAG, "surfaceChanged, w:" + w + ", h:" + h); mCameraEngine.stopPreview(false); startPreview(); // stop preview before making changes /*try { mCamera.stopPreview(); } catch (Exception e){ // ignore: tried to stop a non-existent preview } // set preview size and make any resize, rotate or // reformatting changes here // start preview with new settings try { mCamera.setPreviewDisplay(mHolder); mCamera.setDisplayOrientation(90); mCamera.setPreviewCallback(new PreviewCallback() { @Override public void onPreviewFrame(byte[] arg0, Camera arg1) { // Log.d(TAG, "onPreviewFrame, size:" + arg0.length); if (arg0 == null || arg0.length == 0) { return; } long now = System.currentTimeMillis(); if (now - lastTime < 40) { return; } lastTime = now; Camera.Parameters params = mCamera.getParameters(); if (params.getPreviewFormat() == ImageFormat.NV21) { new ImageTask(params.getPreviewSize().width, params.getPreviewSize().height, frameCount++).execute(arg0); } else { Log.v(TAG,"NOT THE RIGHT FORMAT"); } } }); mCamera.startPreview(); } catch (Exception e){ Log.d(TAG, "Error starting camera preview: " + e.getMessage()); }*/ }
@Override public void surfaceCreated(SurfaceHolder holder) { // The Surface has been created, now tell the camera where to draw the preview. /*try { mCamera.setPreviewDisplay(holder); mCamera.startPreview(); } catch (IOException e) { Log.d(TAG, "Error setting camera preview: " + e.getMessage()); }*/ // startPreview(); mCameraEngine.openCamAsync(); Log.d(TAG, "surfaceCreated"); }
public void startPreview() { if (mHolder.getSurface() == null) { // preview surface does not exist return; } mCameraEngine.startPreview( mHolder, new PreviewCallback() { @Override public void onPreviewFrame(byte[] data, Camera camera) { if (mOnPreviewCallback != null) { mOnPreviewCallback.onPreviewFrame(data); } } }); }
@Override public void surfaceDestroyed(SurfaceHolder holder) { // empty. Take care of releasing the Camera preview in your activity. Log.d(TAG, "surfaceDestroyed"); mCameraEngine.stopPreview(true); }