CameraSource

public classCameraSourceextendsObject

Manages the camera in conjunction with an underlyingDetector.This receives preview frames from the camera at a specified rate, sending those frames to the detector as fast as it is able to process those frames.

This camera source makes a best effort to manage processing on preview frames as fast as possible, while at the same time minimizing lag. As such, frames may be dropped if the detector is unable to keep up with the rate of frames generated by the camera. You should use CameraSource.Builder.setRequestedFps(float)to specify a frame rate that works well with the capabilities of the camera hardware and the detector options that you have selected. If CPU utilization is higher than you'd like, then you may want to consider reducing FPS. If the camera preview or detector results are too "jerky", then you may want to consider increasing FPS.

The following Android permission is required to use the camera:

  • android.permissions.CAMERA

Nested Class Summary

class CameraSource.Builder Builder for configuring and creating an associated camera source.
interface CameraSource.PictureCallback Callback interface used to supply image data from a photo capture.
interface CameraSource.ShutterCallback Callback interface used to signal the moment of actual image capture.

Constant Summary

int CAMERA_FACING_BACK
int CAMERA_FACING_FRONT

Public Method Summary

int
getCameraFacing()
Returns the selected camera; one of CAMERA_FACING_BACKor CAMERA_FACING_FRONT.
Size
getPreviewSize()
Returns the preview size that is currently in use by the underlying camera.
void
release()
Stops the camera and releases the resources of the camera and underlying detector.
CameraSource
start(SurfaceHolder surfaceHolder)
Opens the camera and starts sending preview frames to the underlying detector.
CameraSource
start()
Opens the camera and starts sending preview frames to the underlying detector.
void
stop()
Closes the camera and stops sending frames to the underlying frame detector.
void
takePicture(CameraSource.ShutterCallback shutter, CameraSource.PictureCallbackjpeg)
Initiates taking a picture, which happens asynchronously.

Inherited Method Summary

Constants

public static final int CAMERA_FACING_BACK

Constant Value:0

public static final int CAMERA_FACING_FRONT

Constant Value:1

Public Methods

public intgetCameraFacing()

Returns the selected camera; one of CAMERA_FACING_BACKor CAMERA_FACING_FRONT.

publicSize getPreviewSize()

Returns the preview size that is currently in use by the underlying camera.

public voidrelease()

Stops the camera and releases the resources of the camera and underlying detector.

publicCameraSource start(SurfaceHolder surfaceHolder)

Opens the camera and starts sending preview frames to the underlying detector. The supplied surface holder is used for the preview so frames can be displayed to the user.

Parameters
surfaceHolder the surface holder to use for the preview frames
Throws
IOException if the supplied surface holder could not be used as the preview display

publicCameraSource start()

Opens the camera and starts sending preview frames to the underlying detector. The preview frames are not displayed.

Throws
IOException if the camera's preview texture or display could not be initialized

public voidstop()

Closes the camera and stops sending frames to the underlying frame detector.

This camera source may be restarted again by callingstart() or start(SurfaceHolder).

Callrelease() instead to completely shut down this camera source and release the resources of the underlying detector.

public voidtakePicture(CameraSource.ShutterCallback shutter,CameraSource.PictureCallback jpeg)

Initiates taking a picture, which happens asynchronously. The camera source should have been activated previously withstart() or start(SurfaceHolder).The camera preview is suspended while the picture is being taken, but will resume once picture taking is done.

Parameters
shutter the callback for image capture moment, or null
jpeg the callback for JPEG image data, or null