Search in sources :

Example 81 with Camera

use of android.hardware.Camera in project SimplifyReader by chentao0707.

the class CameraManager method openDriver.

/**
     * Opens the camera driver and initializes the hardware parameters.
     *
     * @param holder The surface object which the camera will draw preview frames into.
     * @throws IOException Indicates the camera driver failed to open.
     */
public synchronized void openDriver(SurfaceHolder holder) throws IOException {
    Camera theCamera = camera;
    if (theCamera == null) {
        theCamera = OpenCameraInterface.open(requestedCameraId);
        if (theCamera == null) {
            throw new IOException();
        }
        camera = theCamera;
    }
    theCamera.setPreviewDisplay(holder);
    if (!initialized) {
        initialized = true;
        configManager.initFromCameraParameters(theCamera);
    }
    Camera.Parameters parameters = theCamera.getParameters();
    // Save these, temporarily
    String parametersFlattened = parameters == null ? null : parameters.flatten();
    try {
        configManager.setDesiredCameraParameters(theCamera, false);
    } catch (RuntimeException re) {
        // Driver failed
        Log.w(TAG, "Camera rejected parameters. Setting only minimal safe-mode parameters");
        Log.i(TAG, "Resetting to saved camera params: " + parametersFlattened);
        // Reset:
        if (parametersFlattened != null) {
            parameters = theCamera.getParameters();
            parameters.unflatten(parametersFlattened);
            try {
                theCamera.setParameters(parameters);
                configManager.setDesiredCameraParameters(theCamera, true);
            } catch (RuntimeException re2) {
                // Well, darn. Give up
                Log.w(TAG, "Camera rejected even safe-mode parameters! No configuration");
            }
        }
    }
}
Also used : Camera(android.hardware.Camera) IOException(java.io.IOException)

Example 82 with Camera

use of android.hardware.Camera in project SimplifyReader by chentao0707.

the class CameraManager method requestPreviewFrame.

/**
     * A single preview frame will be returned to the handler supplied. The data will arrive as byte[]
     * in the message.obj field, with width and height encoded as message.arg1 and message.arg2,
     * respectively.
     *
     * @param handler The handler to send the message to.
     * @param message The what field of the message to be sent.
     */
public synchronized void requestPreviewFrame(Handler handler, int message) {
    Camera theCamera = camera;
    if (theCamera != null && previewing) {
        previewCallback.setHandler(handler, message);
        theCamera.setOneShotPreviewCallback(previewCallback);
    }
}
Also used : Camera(android.hardware.Camera)

Example 83 with Camera

use of android.hardware.Camera in project SimplifyReader by chentao0707.

the class OpenCameraInterface method open.

/**
     * Opens the requested camera with {@link Camera#open(int)}, if one exists.
     *
     * @param cameraId camera ID of the camera to use. A negative value
     *                 or {@link #NO_REQUESTED_CAMERA} means "no preference"
     * @return handle to {@link Camera} that was opened
     */
public static Camera open(int cameraId) {
    int numCameras = Camera.getNumberOfCameras();
    if (numCameras == 0) {
        Log.w(TAG, "No cameras!");
        return null;
    }
    boolean explicitRequest = cameraId >= 0;
    if (!explicitRequest) {
        // Select a camera if no explicit camera requested
        int index = 0;
        while (index < numCameras) {
            Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
            Camera.getCameraInfo(index, cameraInfo);
            if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
                break;
            }
            index++;
        }
        cameraId = index;
    }
    Camera camera;
    if (cameraId < numCameras) {
        Log.i(TAG, "Opening camera #" + cameraId);
        camera = Camera.open(cameraId);
    } else {
        if (explicitRequest) {
            Log.w(TAG, "Requested camera does not exist: " + cameraId);
            camera = null;
        } else {
            Log.i(TAG, "No camera facing back; returning camera #0");
            camera = Camera.open(0);
        }
    }
    return camera;
}
Also used : Camera(android.hardware.Camera)

Example 84 with Camera

use of android.hardware.Camera in project SimplifyReader by chentao0707.

the class CameraConfigurationManager method initFromCameraParameters.

/**
     * Reads, one time, values from the camera that are needed by the app.
     */
void initFromCameraParameters(Camera camera) {
    Camera.Parameters parameters = camera.getParameters();
    WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = manager.getDefaultDisplay();
    Point theScreenResolution = new Point();
    theScreenResolution = getDisplaySize(display);
    screenResolution = theScreenResolution;
    Log.i(TAG, "Screen resolution: " + screenResolution);
    Point screenResolutionForCamera = new Point();
    screenResolutionForCamera.x = screenResolution.x;
    screenResolutionForCamera.y = screenResolution.y;
    if (screenResolution.x < screenResolution.y) {
        screenResolutionForCamera.x = screenResolution.y;
        screenResolutionForCamera.y = screenResolution.x;
    }
    cameraResolution = CameraConfigurationUtils.findBestPreviewSizeValue(parameters, screenResolution);
    Log.i(TAG, "Camera resolution x: " + cameraResolution.x);
    Log.i(TAG, "Camera resolution y: " + cameraResolution.y);
}
Also used : Camera(android.hardware.Camera) Point(android.graphics.Point) WindowManager(android.view.WindowManager) Display(android.view.Display)

Example 85 with Camera

use of android.hardware.Camera in project barcodescanner by dm77.

the class CameraHandlerThread method startCamera.

public void startCamera(final int cameraId) {
    Handler localHandler = new Handler(getLooper());
    localHandler.post(new Runnable() {

        @Override
        public void run() {
            final Camera camera = CameraUtils.getCameraInstance(cameraId);
            Handler mainHandler = new Handler(Looper.getMainLooper());
            mainHandler.post(new Runnable() {

                @Override
                public void run() {
                    mScannerView.setupCameraPreview(CameraWrapper.getWrapper(camera, cameraId));
                }
            });
        }
    });
}
Also used : Handler(android.os.Handler) Camera(android.hardware.Camera)

Aggregations

Camera (android.hardware.Camera)154 Point (android.graphics.Point)28 CameraCharacteristics (android.hardware.camera2.CameraCharacteristics)25 Size (android.util.Size)25 IOException (java.io.IOException)19 Parameters (android.hardware.Camera.Parameters)18 Rect (android.graphics.Rect)17 ArrayList (java.util.ArrayList)17 Display (android.view.Display)16 WindowManager (android.view.WindowManager)16 CaptureRequest (android.hardware.camera2.CaptureRequest)15 SharedPreferences (android.content.SharedPreferences)10 Paint (android.graphics.Paint)10 CameraMetadataNative (android.hardware.camera2.impl.CameraMetadataNative)10 ZoomData (android.hardware.camera2.legacy.ParameterUtils.ZoomData)10 Bitmap (android.graphics.Bitmap)8 MediaRecorder (android.media.MediaRecorder)7 OpenCamera (com.google.zxing.client.android.camera.open.OpenCamera)6 SuppressLint (android.annotation.SuppressLint)5 Area (android.hardware.Camera.Area)5