The MediaRecorder
method start()
, which is part of the MediaStream Recording API, begins recording media into one or more Blob
objects.
You can record the entire duration of the media into a single Blob
(or until you call requestData()
), or you can specify the number of milliseconds to record at a time. Then, each time that amount of media has been recorded, an event will be delivered to let you act upon the recorded media, while a new Blob
is created to record the next slice of the media.
Assuming the MediaRecorder
's state
is inactive
, start()
sets the state
to recording
, then begins capturing media from the input stream. A Blob
is created and the data is collected in it until the time slice period elapses or the source media ends. Each time a Blob
is filled up to that point (the timeslice duration or the end-of-media, if no slice duration was provided), a dataavailable
event is sent to the MediaRecorder
with the recorded data. If the source is still playing, a new Blob
is created and recording continues into that, and so forth.
When the source stream ends, state
is set to inactive
and data gathering stops. A final dataavailable
event is sent to the MediaRecorder
, followed by a stop
event.
Note: If the browser is unable to start recording or continue recording, it will raise an error
event, followed by a dataavailable
event containing the Blob
it has gathered, followed by the stop
event.