The MediaRecorder.stop() method (part of the MediaRecorder API) is used to stop media capture.

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

  1. If MediaRecorder.state is "inactive", raise a DOM InvalidState error and terminate these steps. If the MediaRecorder.state is not "inactive", continue on to the next step.
  2. Set the MediaRecorder.state to "inactive" and stop capturing media.
  3. Raise a dataavailable event containing the Blob of data that has been gathered.
  4. Raise a stop event.




An InvalidState error is raised if the stop() method is called while the MediaRecorder object’s MediaRecorder.state is "inactive" — it makes no sense to stop media capture if it is already stopped.



  stop.onclick = function() {
    console.log("recorder stopped, data available");



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

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support471 ?25 ? ? ?
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support ? ? ?25 ? ? ?

1. 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.

See also

Document Tags and Contributors

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