This API is available on Firefox OS for privileged or certified applications only.
When you use the CameraManager.getCamera()
method to get a reference to a camera, you specify a callback function to be invoked on success. That function receives as a parameter a CameraControl
object. You can use its methods and properties to manage and make use of the camera.
Properties
CameraControl.capabilities
Read only- A
CameraCapabilities
object indicating all the capabilities for the given camera. CameraControl.effect
- A string defining the effect to be used by the camera (
none
by default). Its value must be one of the values available inCameraCapabilities.effects
. CameraControl.exposureCompensation
Read only- A value used to compensate the camera exposure. This attribute is read-only; to change the exposure, you need to call the
CameraControl.setExposureCompensation()
method. CameraControl.flashMode
- A string that defines how the flash, if any, is to be used; this is
auto
by default if the device has a flash,none
otherwise. When set, its value must be chosen from the list of options specified byCameraCapabilities.flashModes
.
CameraControl.focalLength
Read only- A number that express the camera's focal length in millimeters.
CameraControl.focusAreas
- An
Array
of one or more objects that define where the camera will perform auto-focusing. CameraControl.focusDistanceFar
Read only- This value is a distance in meter used with
CameraControl.focusDistanceNear
to defined the image's depth of field. The value for this property may beInfinity
. CameraControl.focusDistanceNear
Read only- This value is a distance in meter used with
CameraControl.focusDistanceFar
to defined the image's depth of field. CameraControl.focusDistanceOptimum
Read only- This value is a distance in meter where the subject will appear sharpest.
CameraControl.focusMode
- A string that defines which kind of focus mode the camera should use (
auto
orfixed
by default). Its value must be chosen fromCameraCapabilities.focusModes
. CameraControl.meteringAreas
- An
Array
of one or more objects that define where the camera will perform auto-focusing. CameraControl.onShutter
- A handler for the camera's "shutter" event, to trigger a shutter sound and/or a visual shutter indicator.
CameraControl.onClosed
- A handler called when a new
CameraControl
object in the same app takes over the camera. CameraControl.onRecorderStateChange
- A function to call when the recorder changes state, either because the recording process encountered an error, or because one of the recording limits (see
CameraControl.startRecording()
) was reached. CameraControl.sceneMode
- A string that defines which scene mode the camera is to use (
auto
by default). Its value must be chosen fromCameraCapabilities.sceneModes
. CameraControl.whiteBalanceMode
- A string that defines which white balance mode the camera is to use (
auto
by default). Its value must be chosen fromCameraCapabilities.whiteBalanceModes
. CameraControl.zoom
- A number that defines which kind of zoom factor mode the camera is to use (1 by default). Its value must be chosen from
CameraCapabilities.zoomRatios
.
Methods
CameraControl.autoFocus()
- Tells the camera to attempt to focus the image.
CameraControl.getPreviewStream()
- Gets a video stream from the camera; you can use this in an arbitrary context.
CameraControl.getPreviewStreamVideoMode()
- Gets a video stream from the camera based on a specific video mode.
CameraControl.release()
- Releases the camera so that other applications can use it.
CameraControl.resumePreview()
- Resumes the preview video stream after it's been paused by a call to
CameraControl.takePicture()
. CameraControl.setConfiguration()
- Lets you perform ad-hoc configuration changes.
CameraControl.setExposureCompensation()
- Lets you specify the exposure compensation factor.
CameraControl.startRecording()
- Lets you start recording a video stream.
CameraControl.stopRecording()
- Lets you stop recording a video stream.
CameraControl.pauseRecording()
- Pauses the recording of a video stream.
CameraControl.resumeRecording()
- Resumes the recording of a video stream that has previously been paused.
CameraControl.takePicture()
- Lets you capture a single image, receiving it as a
Blob
.
Specification
Not part of any specification as yet; this will probably be replaced by WebRTC when it gains more widespread support on mobile devices.
Permissions
Up until Firefox OS 1.4, The Camera API was a certified API, so not accessible to third party apps. From Firefox OS 2.0 onwards, the permission level has been downgraded to privileged, so it is now available for developers to use in their apps.
"permissions": { "camera": { "description": "Required for accessing cameras on the device." } }