Java Examples for android.hardware.camera2.CameraDevice

The following java examples will help you to understand the usage of android.hardware.camera2.CameraDevice. These source code samples are taken from different open source projects.

Example 1
Project: Fotoapparat-master  File: CaptureRequestFactory.java View source code
/**
     * Creates a request responsible to trigger an auto focus request.
     *
     * @return The camera request.
     * @throws CameraAccessException If the camera device has been disconnected.
     */
public CaptureRequest createLockRequest() throws CameraAccessException {
    CameraDevice camera = cameraConnection.getCamera();
    Surface surface = textureManager.getSurface();
    Flash flash = parametersProvider.getFlash();
    boolean triggerAutoExposure = !cameraConnection.getCharacteristics().isLegacyDevice();
    return CaptureRequestBuilder.create(camera, CameraDevice.TEMPLATE_STILL_CAPTURE).into(surface).flash(flash).triggerAutoFocus(true).triggerPrecaptureExposure(triggerAutoExposure).build();
}
Example 2
Project: ShaderCamera-master  File: CameraFragment.java View source code
/**
     * Start the camera preview.
     */
private void startPreview() {
    if (null == mCameraDevice || !mTextureView.isAvailable() || null == mPreviewSize) {
        return;
    }
    try {
        Log.d(TAG, "preview size: " + mPreviewSize.getWidth() + ", " + mPreviewSize.getHeight());
        setUpMediaRecorder();
        SurfaceTexture texture = mRenderer.getVideoTexture();
        assert texture != null;
        texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());
        mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
        List<Surface> surfaces = new ArrayList<>();
        Surface previewSurface = new Surface(texture);
        surfaces.add(previewSurface);
        mPreviewBuilder.addTarget(previewSurface);
        Surface recorderSurface = mMediaRecorder.getSurface();
        surfaces.add(recorderSurface);
        mPreviewBuilder.addTarget(recorderSurface);
        mCameraDevice.createCaptureSession(surfaces, new CameraCaptureSession.StateCallback() {

            @Override
            public void onConfigured(CameraCaptureSession cameraCaptureSession) {
                mPreviewSession = cameraCaptureSession;
                updatePreview();
            }

            @Override
            public void onConfigureFailed(CameraCaptureSession cameraCaptureSession) {
                Activity activity = getActivity();
                if (null != activity) {
                    Toast.makeText(activity, "Failed", Toast.LENGTH_SHORT).show();
                }
            }
        }, mBackgroundHandler);
    } catch (CameraAccessExceptionIOException |  e) {
        e.printStackTrace();
    }
}
Example 3
Project: rtmp-rtsp-stream-client-java-master  File: Camera2ApiManager.java View source code
private void startPreview(CameraDevice cameraDevice) {
    try {
        cameraDevice.createCaptureSession(Arrays.asList(surfaceView.getHolder().getSurface(), surface), new CameraCaptureSession.StateCallback() {

            @Override
            public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) {
                try {
                    cameraCaptureSession.setRepeatingBurst(Arrays.asList(drawPreview(surfaceView), drawInputSurface(surface)), null, cameraHandler);
                    Log.i(TAG, "camera configured");
                } catch (CameraAccessException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onConfigureFailed(@NonNull CameraCaptureSession cameraCaptureSession) {
                cameraCaptureSession.close();
                Log.e(TAG, "configuration failed");
            }
        }, null);
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }
}
Example 4
Project: platform_frameworks_base-master  File: CameraTestUtils.java View source code
/**
     * Block until the camera is opened.
     *
     * <p>Don't use this to test #onDisconnected/#onError since this will throw
     * an AssertionError if it fails to open the camera device.</p>
     *
     * @return CameraDevice opened camera device
     *
     * @throws IllegalArgumentException
     *            If the handler is null, or if the handler's looper is current.
     * @throws CameraAccessException
     *            If open fails immediately.
     * @throws BlockingOpenException
     *            If open fails after blocking for some amount of time.
     * @throws TimeoutRuntimeException
     *            If opening times out. Typically unrecoverable.
     */
public static CameraDevice openCamera(CameraManager manager, String cameraId, CameraDevice.StateCallback listener, Handler handler) throws CameraAccessException, BlockingOpenException {
    /**
         * Although camera2 API allows 'null' Handler (it will just use the current
         * thread's Looper), this is not what we want for CTS.
         *
         * In Camera framework test the default looper is used only to process events
         * in between test runs,
         * so anything sent there would not be executed inside a test and the test would fail.
         *
         * In this case, BlockingCameraManager#openCamera performs the check for us.
         */
    return (new BlockingCameraManager(manager)).openCamera(cameraId, listener, handler);
}
Example 5
Project: AppLock-master  File: Camera2Fragment.java View source code
@Override
public void onOpened(CameraDevice cameraDevice) {
    Log.d(TAG, "相机已经打开");
    try {
        mPreViewBuidler = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
        SurfaceTexture texture = mTextureView.getSurfaceTexture();
        texture.setDefaultBufferSize(mPreViewSize.getWidth(), mPreViewSize.getHeight());
        surface = new Surface(texture);
        mPreViewBuidler.addTarget(surface);
        cameraDevice.createCaptureSession(Arrays.asList(surface, mImageReader.getSurface()), mSessionStateCallBack, mHandler);
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }
}
Example 6
Project: ShowMeHills-master  File: CameraPreviewSurface.java View source code
@Override
public void onConfigured(@NonNull CameraCaptureSession session) {
    Log.i(TAG, "Finished configuring camera outputs");
    mCaptureSession = session;
    SurfaceHolder holder = mSurfaceView.getHolder();
    if (holder != null) {
        try {
            // Build a request for preview footage
            CaptureRequest.Builder requestBuilder = mCamera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
            requestBuilder.addTarget(holder.getSurface());
            CaptureRequest previewRequest = requestBuilder.build();
            // Start displaying preview images
            try {
                session.setRepeatingRequest(previewRequest, /*listener*/
                null, /*handler*/
                null);
            } catch (CameraAccessException ex) {
                Log.e(TAG, "Failed to make repeating preview request", ex);
            }
        } catch (CameraAccessException ex) {
            Log.e(TAG, "Failed to build preview request", ex);
        }
    } else {
        Log.e(TAG, "Holder didn't exist when trying to formulate preview request");
    }
}
Example 7
Project: AiyaEffectsAndroid-master  File: Camera2Model.java View source code
public CameraDevice openCamera(int cameraId) {
    try {
        CameraCharacteristics characteristics = mCameraManager.getCameraCharacteristics(cameraId + "");
        //支持的STREAM CONFIGURATION
        StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
        mPreviewSize = setSize(cameraId, map);
        mCameraDevice = null;
        while (mCameraDevice == null) {
            mCameraManager.openCamera(cameraId + "", mDeviceStateCallback, mHandler);
            synchronized (lock) {
                try {
                    Log.e("camera2", "wait");
                    lock.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    } catch (CameraAccessExceptionSecurityException |  e) {
        e.printStackTrace();
    }
    Log.e("camera2", "reture device" + (mCameraDevice == null));
    return mCameraDevice;
}
Example 8
Project: EvilsLive-master  File: CameraNew.java View source code
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public CameraSupport open() {
    try {
        startCamera2Thread();
        if (mIsInPreview) {
            reconfigureCamera();
            return this;
        }
        mIsInPreview = true;
        if (!cameraOpenCloseLock.tryAcquire(2500, TimeUnit.MICROSECONDS)) {
            throw new RuntimeException("Time out waiting to lock camera opening.");
        }
        printSupportFormats();
        String[] cameraIds = manager.getCameraIdList();
        CameraDevice.StateCallback deviceCallback = new CameraDevice.StateCallback() {

            @Override
            public void onOpened(@NonNull CameraDevice camera) {
                cameraOpenCloseLock.release();
                mCamera = camera;
                createCameraPreviewSession();
            }

            @Override
            public void onDisconnected(@NonNull CameraDevice camera) {
                Log.d(TAG, "onDisconnected:  open");
                cameraOpenCloseLock.release();
                camera.close();
                mCamera = null;
            }

            @Override
            public void onError(@NonNull CameraDevice camera, int error) {
                cameraOpenCloseLock.release();
                camera.close();
                mCamera = null;
            }
        };
        if (ActivityCompat.checkSelfPermission(context, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
            Log.d(TAG, "open: jjjj");
        }
        // TODO 先只预览背面的摄像头
        manager.openCamera(cameraIds[0], deviceCallback, mHandler);
    } catch (Exception e) {
        Log.e(TAG, "open: " + Log.getStackTraceString(e));
    }
    return this;
}
Example 9
Project: sample-tensorflow-imageclassifier-master  File: CameraHandler.java View source code
/**
     * Execute a new capture request within the active session
     */
private void triggerImageCapture() {
    try {
        final CaptureRequest.Builder captureBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
        captureBuilder.addTarget(mImageReader.getSurface());
        captureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
        captureBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CaptureRequest.CONTROL_AWB_MODE_AUTO);
        Log.d(TAG, "Capture request created.");
        mCaptureSession.capture(captureBuilder.build(), mCaptureCallback, null);
    } catch (CameraAccessException cae) {
        Log.d(TAG, "camera capture exception");
    }
}
Example 10
Project: Android-Demo-Projects-master  File: CameraConnectionFragment.java View source code
/**
   * Creates a new {@link CameraCaptureSession} for camera preview.
   */
private void createCameraPreviewSession() {
    try {
        final SurfaceTexture texture = textureView.getSurfaceTexture();
        assert texture != null;
        // We configure the size of default buffer to be the size of camera preview we want.
        texture.setDefaultBufferSize(previewSize.getWidth(), previewSize.getHeight());
        // This is the output Surface we need to start preview.
        final Surface surface = new Surface(texture);
        // We set up a CaptureRequest.Builder with the output Surface.
        previewRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
        previewRequestBuilder.addTarget(surface);
        LOGGER.i("Opening camera preview: " + previewSize.getWidth() + "x" + previewSize.getHeight());
        // Create the reader for the preview frames.
        previewReader = ImageReader.newInstance(previewSize.getWidth(), previewSize.getHeight(), ImageFormat.YUV_420_888, 2);
        previewReader.setOnImageAvailableListener(tfPreviewListener, backgroundHandler);
        previewRequestBuilder.addTarget(previewReader.getSurface());
        // Here, we create a CameraCaptureSession for camera preview.
        cameraDevice.createCaptureSession(Arrays.asList(surface, previewReader.getSurface()), new CameraCaptureSession.StateCallback() {

            @Override
            public void onConfigured(final CameraCaptureSession cameraCaptureSession) {
                // The camera is already closed
                if (null == cameraDevice) {
                    return;
                }
                // When the session is ready, we start displaying the preview.
                captureSession = cameraCaptureSession;
                try {
                    // Auto focus should be continuous for camera preview.
                    previewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
                    // Flash is automatically enabled when necessary.
                    previewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
                    // Finally, we start displaying the camera preview.
                    previewRequest = previewRequestBuilder.build();
                    captureSession.setRepeatingRequest(previewRequest, captureCallback, backgroundHandler);
                } catch (final CameraAccessException e) {
                    LOGGER.e(e, "Exception!");
                }
            }

            @Override
            public void onConfigureFailed(final CameraCaptureSession cameraCaptureSession) {
                showToast("Failed");
            }
        }, null);
    } catch (final CameraAccessException e) {
        LOGGER.e(e, "Exception!");
    }
    LOGGER.i("Getting assets.");
    tfPreviewListener.initialize(getActivity().getAssets(), scoreView, inferenceHandler);
    LOGGER.i("Tensorflow initialized.");
}
Example 11
Project: android-Camera2Video-master  File: Camera2VideoFragment.java View source code
/**
     * Start the camera preview.
     */
private void startPreview() {
    if (null == mCameraDevice || !mTextureView.isAvailable() || null == mPreviewSize) {
        return;
    }
    try {
        closePreviewSession();
        SurfaceTexture texture = mTextureView.getSurfaceTexture();
        assert texture != null;
        texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());
        mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
        Surface previewSurface = new Surface(texture);
        mPreviewBuilder.addTarget(previewSurface);
        mCameraDevice.createCaptureSession(Collections.singletonList(previewSurface), new CameraCaptureSession.StateCallback() {

            @Override
            public void onConfigured(@NonNull CameraCaptureSession session) {
                mPreviewSession = session;
                updatePreview();
            }

            @Override
            public void onConfigureFailed(@NonNull CameraCaptureSession session) {
                Activity activity = getActivity();
                if (null != activity) {
                    Toast.makeText(activity, "Failed", Toast.LENGTH_SHORT).show();
                }
            }
        }, mBackgroundHandler);
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }
}
Example 12
Project: XieDaDeng-master  File: FlashlightController.java View source code
private void updateFlashlight(boolean forceDisable) {
    try {
        boolean enabled;
        /* SPRD: fixbug421956 make this method to be thread-safety @{ */
        synchronized (this) {
            enabled = mFlashlightEnabled && !forceDisable;
            if (enabled) {
                registerListenerBroadcast();
            } else {
                unresisterListenerBroadcast();
            }
            mFlashLightManager.setFlashlightEnabled(enabled);
        /*if (enabled) {
                if (mCameraDevice == null) {
                    startDevice();
                    return;
                }
                if (mSession == null) {
                    startSession();
                    return;
                }
                if (mFlashlightRequest == null) {
                    CaptureRequest.Builder builder = mCameraDevice.createCaptureRequest(
                            CameraDevice.TEMPLATE_PREVIEW);
                    builder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_TORCH);
                    builder.addTarget(mSurface);
                    CaptureRequest request = builder.build();
                    mSession.capture(request, null, mHandler);
                    mFlashlightRequest = request;
                }
            } else {
                if (mCameraDevice != null) {
                    mCameraDevice.close();
                    teardown();
                }
            }*/
        }
    /* @} */
    //} catch (CameraAccessException|IllegalStateException|UnsupportedOperationException e) {
    } catch (Exception e) {
        Log.e(TAG, "Error in updateFlashlight", e);
        handleError();
    }
}
Example 13
Project: android-sdk-sources-for-api-level-23-master  File: CameraManager.java View source code
/**
     * Helper for opening a connection to a camera with the given ID.
     *
     * @param cameraId The unique identifier of the camera device to open
     * @param callback The callback for the camera. Must not be null.
     * @param handler  The handler to invoke the callback on. Must not be null.
     *
     * @throws CameraAccessException if the camera is disabled by device policy,
     * too many camera devices are already open, or the cameraId does not match
     * any currently available camera device.
     *
     * @throws SecurityException if the application does not have permission to
     * access the camera
     * @throws IllegalArgumentException if callback or handler is null.
     * @return A handle to the newly-created camera device.
     *
     * @see #getCameraIdList
     * @see android.app.admin.DevicePolicyManager#setCameraDisabled
     */
private CameraDevice openCameraDeviceUserAsync(String cameraId, CameraDevice.StateCallback callback, Handler handler) throws CameraAccessException {
    CameraCharacteristics characteristics = getCameraCharacteristics(cameraId);
    CameraDevice device = null;
    try {
        synchronized (mLock) {
            ICameraDeviceUser cameraUser = null;
            android.hardware.camera2.impl.CameraDeviceImpl deviceImpl = new android.hardware.camera2.impl.CameraDeviceImpl(cameraId, callback, handler, characteristics);
            BinderHolder holder = new BinderHolder();
            ICameraDeviceCallbacks callbacks = deviceImpl.getCallbacks();
            int id = Integer.parseInt(cameraId);
            try {
                if (supportsCamera2ApiLocked(cameraId)) {
                    // Use cameraservice's cameradeviceclient implementation for HAL3.2+ devices
                    ICameraService cameraService = CameraManagerGlobal.get().getCameraService();
                    if (cameraService == null) {
                        throw new CameraRuntimeException(CameraAccessException.CAMERA_DISCONNECTED, "Camera service is currently unavailable");
                    }
                    cameraService.connectDevice(callbacks, id, mContext.getOpPackageName(), USE_CALLING_UID, holder);
                    cameraUser = ICameraDeviceUser.Stub.asInterface(holder.getBinder());
                } else {
                    // Use legacy camera implementation for HAL1 devices
                    Log.i(TAG, "Using legacy camera HAL.");
                    cameraUser = CameraDeviceUserShim.connectBinderShim(callbacks, id);
                }
            } catch (CameraRuntimeException e) {
                if (e.getReason() == CameraAccessException.CAMERA_DEPRECATED_HAL) {
                    throw new AssertionError("Should've gone down the shim path");
                } else if (e.getReason() == CameraAccessException.CAMERA_IN_USE || e.getReason() == CameraAccessException.MAX_CAMERAS_IN_USE || e.getReason() == CameraAccessException.CAMERA_DISABLED || e.getReason() == CameraAccessException.CAMERA_DISCONNECTED || e.getReason() == CameraAccessException.CAMERA_ERROR) {
                    deviceImpl.setRemoteFailure(e);
                    if (e.getReason() == CameraAccessException.CAMERA_DISABLED || e.getReason() == CameraAccessException.CAMERA_DISCONNECTED || e.getReason() == CameraAccessException.CAMERA_IN_USE) {
                        throw e.asChecked();
                    }
                } else {
                    throw e;
                }
            } catch (RemoteException e) {
                CameraRuntimeException ce = new CameraRuntimeException(CameraAccessException.CAMERA_DISCONNECTED, "Camera service is currently unavailable", e);
                deviceImpl.setRemoteFailure(ce);
                throw ce.asChecked();
            }
            // TODO: factor out callback to be non-nested, then move setter to constructor
            // For now, calling setRemoteDevice will fire initial
            // onOpened/onUnconfigured callbacks.
            deviceImpl.setRemoteDevice(cameraUser);
            device = deviceImpl;
        }
    } catch (NumberFormatException e) {
        throw new IllegalArgumentException("Expected cameraId to be numeric, but it was: " + cameraId);
    } catch (CameraRuntimeException e) {
        throw e.asChecked();
    }
    return device;
}
Example 14
Project: PhotoNoter-master  File: Camera2ModelImpl.java View source code
@Override
public void onOpened(CameraDevice camera) {
    mCameraState = STATE_CAMERA_OPEN;
    mCameraDevice = camera;
    mCamera2PreviewModel = new Camera2PreviewModel();
    try {
        mCamera2SettingModel = new Camera2SettingModel(mCameraManager.getCameraCharacteristics(id), mCameraManager.getCameraIdList().length);
        mCamera2SettingModel.setOnParameterChangedListener(Camera2ModelImpl.this);
        Size picSize = null;
        if (pictureSize == null) {
            List<Size> list = mCamera2SettingModel.getSupportPictureSizes();
            Collections.sort(list, new SizeComparator());
            picSize = list.get(list.size() - 1);
        } else {
            picSize = pictureSize;
        }
        mJpgImageReader = ImageReader.newInstance(picSize.getWidth(), picSize.getHeight(), ImageFormat.JPEG, 2);
        mJpegPictureCallback = new PictureCallback();
        mJpgImageReader.setOnImageAvailableListener(mJpegPictureCallback, null);
    } catch (CameraAccessException e) {
        YLog.e(e);
    }
    callback.onOpen(mCamera2PreviewModel, mCamera2SettingModel);
}
Example 15
Project: android-HdrViewfinder-master  File: HdrViewfinderActivity.java View source code
/**
     * Callbacks for CameraOps
     */
@Override
public void onCameraReady() {
    // Ready to send requests in, so set them up
    try {
        CaptureRequest.Builder previewBuilder = mCameraOps.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
        previewBuilder.addTarget(mProcessingNormalSurface);
        previewBuilder.setTag(mAutoExposureTag);
        mPreviewRequest = previewBuilder.build();
        mHdrBuilder = mCameraOps.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
        mHdrBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF);
        mHdrBuilder.addTarget(mProcessingHdrSurface);
        switchRenderMode(0);
    } catch (CameraAccessException e) {
        String errorMessage = getErrorString(e);
        showErrorDialog(errorMessage);
    }
}
Example 16
Project: cwac-cam2-master  File: CameraTwoEngine.java View source code
@Override
public void onOpened(CameraDevice cameraDevice) {
    lock.release();
    s.cameraDevice = cameraDevice;
    s.reader = s.buildImageReader();
    Descriptor camera = (Descriptor) s.getDescriptor();
    camera.setDevice(cameraDevice);
    try {
        cameraDevice.createCaptureSession(Arrays.asList(surface, s.reader.getSurface()), new StartPreviewTransaction(s, surface), handler);
    } catch (CameraAccessException e) {
        getBus().post(new OpenedEvent(e));
    } catch (IllegalStateException e2) {
        getBus().post(new DeepImpactEvent(e2));
    }
}
Example 17
Project: LiveMultimedia-master  File: LollipopCamera.java View source code
@Override
public void onOpened(CameraDevice cameraDevice) {
    Log.d(TAG, "******************************");
    Log.d(TAG, "onOpened camera status!");
    Log.d(TAG, "******************************");
    mCameraDevice = cameraDevice;
    startPreview();
    mCameraOpenCloseLock.release();
    if (null != mTextureView) {
        configureTransform(mTextureView.getWidth(), mTextureView.getHeight());
    }
}
Example 18
Project: CVPR2015-master  File: Camera2BasicFragment.java View source code
/**
     * Opens the camera specified by {@link Camera2BasicFragment#mCameraId}.
     */
private void openCamera() {
    Activity activity = getActivity();
    CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
    BlockingCameraManager blockingManager = new BlockingCameraManager(manager);
    try {
        mDeviceCallback = new BlockingStateCallback() {

            @Override
            public void onDisconnected(CameraDevice camera) {
                camera.close();
                mCameraDevice = null;
            }

            @Override
            public void onError(CameraDevice camera, int error) {
                camera.close();
                mCameraDevice = null;
                Activity activity = getActivity();
                if (activity != null) {
                    activity.finish();
                }
            }
        };
        mCameraDevice = blockingManager.openCamera(mCameraId, mDeviceCallback, mBackgroundHandler);
        createCameraPreviewSession();
    } catch (BlockingOpenExceptionTimeoutRuntimeException |  e) {
        showToast("Timed out opening camera.");
    } catch (CameraAccessException e) {
        showToast("Failed to open camera.");
    }
}
Example 19
Project: Augendiagnose-master  File: Camera2Handler.java View source code
/**
	 * Capture a still picture. This method should be called when we get a response in
	 * {@link #mCaptureCallback} from both {@link #lockFocus()}.
	 */
private void captureStillPicture() {
    try {
        if (null == mActivity || null == mCameraDevice || null == mCaptureSession) {
            return;
        }
        // This is the CaptureRequest.Builder that we use to take a picture.
        final CaptureRequest.Builder captureBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
        captureBuilder.addTarget(mImageReader.getSurface());
        // Use the same AE and AF modes as the preview.
        captureBuilder.set(CaptureRequest.CONTROL_AF_MODE, mCurrentFocusMode);
        captureBuilder.set(CaptureRequest.FLASH_MODE, mCurrentFlashMode);
        captureBuilder.set(CaptureRequest.CONTROL_AE_MODE, mCurrentAutoExposureMode);
        captureBuilder.set(CaptureRequest.LENS_FOCUS_DISTANCE, mMinimalFocalDistance * mCurrentRelativeFocalDistance);
        captureBuilder.set(CaptureRequest.SCALER_CROP_REGION, getCroppingRect(mCurrentRelativeZoom));
        if (mMaximalFocalLength > 0) {
            captureBuilder.set(CaptureRequest.LENS_FOCAL_LENGTH, mMaximalFocalLength);
        }
        captureBuilder.set(CaptureRequest.NOISE_REDUCTION_MODE, CaptureRequest.NOISE_REDUCTION_MODE_OFF);
        captureBuilder.set(CaptureRequest.EDGE_MODE, CaptureRequest.EDGE_MODE_OFF);
        mCaptureSession.stopRepeating();
        mState = CameraState.STATE_WAITING_UNLOCK;
        mCaptureSession.capture(captureBuilder.build(), mCaptureCallback, mBackgroundHandler);
        mCameraCallback.onTakingPicture();
    } catch (CameraAccessExceptionIllegalStateException |  e) {
        mCameraCallback.onCameraError("Failed to capture picture", "cap1", e);
    }
}
Example 20
Project: android-Camera2Raw-master  File: Camera2RawFragment.java View source code
@Override
public void onOpened(CameraDevice cameraDevice) {
    // the TextureView displaying this has been set up.
    synchronized (mCameraStateLock) {
        mState = STATE_OPENED;
        mCameraOpenCloseLock.release();
        mCameraDevice = cameraDevice;
        // Start the preview session if the TextureView has been set up already.
        if (mPreviewSize != null && mTextureView.isAvailable()) {
            createCameraPreviewSessionLocked();
        }
    }
}
Example 21
Project: OpenCamera-master  File: Camera2Controller.java View source code
public static boolean createCaptureSession(List<Surface> sfl) {
    try {
        if (!captureSessionOpenCloseLock.tryAcquire(2500, TimeUnit.MILLISECONDS)) {
            Log.d(TAG, "Create capture session failed. Semaphore is locked");
            return false;
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
        return false;
    }
    try {
        CameraDevice camera = Camera2Controller.getCamera2();
        if (camera == null) {
            captureSessionOpenCloseLock.release();
            return false;
        }
        //			Log.e(TAG, "Create capture session. Surface list size = " + sfl.size());
        // Here, we create a CameraCaptureSession for camera preview.
        camera.createCaptureSession(sfl, Camera2Controller.captureSessionStateCallback, null);
    } catch (IllegalArgumentException e) {
        Log.e(TAG, "Create capture session failed. IllegalArgumentException: " + e.getMessage());
        e.printStackTrace();
    } catch (CameraAccessException e) {
        Log.e(TAG, "Create capture session failed. CameraAccessException: " + e.getMessage());
        e.printStackTrace();
    }
    return true;
}
Example 22
Project: pocketDSLR-master  File: CameraStateCallbackBridge.java View source code
public void onOpened(CameraDevice camera) {
    try {
        callback.onCameraOpened(camera);
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }
}
Example 23
Project: ProCamera-master  File: BaseCamera2TextureView.java View source code
@Override
public void onOpened(@NonNull CameraDevice cameraDevice) {
    mCameraOpenCloseLock.release();
    mCameraDevice = cameraDevice;
    createCameraPreviewSession();
}