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:
- If MediaRecorder.stateis "inactive", raise a DOMInvalidStateerror and terminate these steps. If theMediaRecorder.stateis not "inactive", continue on to the next step.
- Set the MediaRecorder.stateto "inactive" and stop capturing media.
- Raise a dataavailableevent containing the Blob of data that has been gathered.
- Raise a stopevent.
Syntax
MediaRecorder.stop()
Errors
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.
Example
...
  stop.onclick = function() {
    mediaRecorder.stop();
    console.log("recorder stopped, data available");
  }
...
Specifications
| Specification | Status | Comment | 
|---|---|---|
| MediaStream Recording The definition of 'MediaRecorder.stop()' in that specification. | Working Draft | Initial definition | 
Browser compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) | 
|---|---|---|---|---|---|
| Basic support | 47[2] | 25.0 (25.0) | Not supported | Not supported | Not supported | 
| Feature | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android | 
|---|---|---|---|---|---|---|---|---|
| Basic support | Not supported | Not supported | 25.0 (25.0) | 1.3[1] | Not supported | Not supported | Not supported | Not supported | 
[1] The intial Firefox OS implementation only supported audio recording.
[2] To try this feature on Chrome, enable Experimental Web Platform features from chrome://flags . Currently only video is supported, not audio.
See also
- Using the MediaRecorder API
- Web Dictaphone: MediaRecorder + getUserMedia + Web Audio API visualization demo, by Chris Mills (source on Github.)
- simpl.info MediaStream Recording demo, by Sam Dutton.
- Navigator.getUserMedia