MediaRecorder.requestData()

The MediaRecorder.requestData() method (part of the MediaRecorder API) is used to raise a dataavailable event containing a Blob object of the captured media as it was when the method was called. This can then be grabbed and manipulated as you wish.

When the requestData() method is invoked, the browser queues a task that runs the following steps:

  1. If MediaRecorder.state is not "recording", raise a DOM InvalidState error and terminate these steps. If MediaRecorder.state is "recording", continue to the next step.
  2. Raise a dataavailable event containing a Blob of the currently captured data (the Blob is available under the event's data attribute.)
  3. Create a new Blob and place subsequently captured data into it.

Syntax

MediaRecorder.requestData()

Errors

An InvalidState error is raised if the requestData() method is called while the MediaRecorder object’s MediaRecorder.state is not "recording" — the media cannot be captured if recording is not occurring.

Example

...

  captureMedia.onclick = function() {
    mediaRecorder.requestData();
    // makes snapshot available of data so far
    // ondataavailable fires, then capturing continues
    // in new Blob
  }

...

Specifications

Specification Status Comment
MediaStream Recording
The definition of 'MediaRecorder.requestData()' in that specification.
Working Draft Initial definition

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic supportChrome Full support 47
Notes Disabled
Full support 47
Notes Disabled
Notes Full support since Chrome 49.
Disabled From version 47: this feature is behind the Experimental Web Platform features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge ? Firefox Full support 25IE ? Opera Full support 36Safari ? WebView Android Full support 49Chrome Android Full support 49Edge Mobile ? Firefox Android Full support 25Opera Android Full support 36Safari iOS ? Samsung Internet Android ?

Legend

Full support  
Full support
Compatibility unknown  
Compatibility unknown
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.

See also

Document Tags and Contributors

Contributors to this page: lucian95, Sheppy, jpmedley, Sebastianz, chrisdavidmills, teoli, kscarfone
Last updated by: lucian95,