MDN’s new design is in Beta! A sneak peek:

CameraControl.onRecorderStateChange Redirect 1

This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

This API is available on Firefox OS for privileged or certified applications only.


The onRecorderStateChange property is used to set an event handler to listen to the recorder state change. This can happen either because the recording process encountered an error, or because one of the recording limits set with CameraControl.startRecording() was reached.


instanceOfCameraControl.onRecorderStateChange = funcRef;

Where funcRef is a function to be called when the recorder changes states.

This function takes one parameter, which is one of the following strings:

  • FileSizeLimitReached
  • VideoLengthLimitReached
  • MediaRecorderFailed
  • MediaServerFailed
  • TrackCompleted
  • TrackFailed


// back or front camera
var whichCamera = navigator.mozCameras.getListOfCameras()[0];

var options = {
  mode: 'picture',
  recorderProfile: 'jpg',
  previewSize: {
    width: 352,
    height: 288

function onSuccess( camera ) {
  var outputString = {
    FileSizeLimitReached   : "The file size has reached its limit",
    VideoLengthLimitReached: "The time limit for the video has been reached",
    MediaRecorderFailed    : "The recorder encountered an error",
    MediaServerFailed      : "The media source encountered an error",
    TrackCompleted         : "The recording ended nicely",
    TrackFailed            : "Something went wrong"

  camera.onRecorderStateChange = function (value) {

navigator.mozCameras.getCamera(whichCamera, options, onSuccess)


Not part of any specification; however, this API should be removed when the WebRTC Capture and Stream API has been implemented.

See also

Document Tags and Contributors

 Last updated by: Sheppy,