MediaRecorder.start() - Web APIs 编辑

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 a DOMError event, followed by a MediaRecorder.dataavailable event containing the Blob it has gathered, followed by the MediaRecorder.stop event.

Syntax

mediaRecorder.start(timeslice)

Parameters

timeslice Optional
The number of milliseconds to record into each Blob. If this parameter isn't included, the entire media duration is recorded into a single Blob unless the requestData() method is called to obtain the Blob and trigger the creation of a new Blob into which the media continues to be recorded.

Return value

undefined.

Exceptions

Errors that can be detected immediately are thrown as DOM exceptions. All other errors are reported through error events sent to the MediaRecorder object. You can implement the onerror event handler to respond to these errors.

InvalidModificationError
The number of tracks on the stream being recorded has changed. You can't add or remove tracks while recording media.
InvalidStateError
The MediaRecorder is not in the inactive state; you can't start recording media if it's already being recorded. See the state property.
NotSupportedError
The media stream you're attempting to record is inactive, or one or more of the stream's tracks is in a format that can't be recorded using the current configuration.
SecurityError
The MediaStream is configured to disallow recording. This may be the case, for example, with sources obtained using getUserMedia() when the user denies permission to use an input device.  This also happens when a MediaStreamTrack within the stream is marked as isolated due to the peerIdentity constraint on the source stream. This exception may also be delivered as an error event if the security options for the source media change after recording begins.
UnknownError
Something else went wrong during the recording process.

Example

...

  record.onclick = function() {
    mediaRecorder.start();
    console.log("recorder started");
  }

...

Specifications

SpecificationStatusComment
MediaStream Recording
The definition of 'MediaRecorder.start()' in that specification.
Working DraftInitial definition

Browser compatibility

BCD tables only load in the browser

See also

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:102 次

字数:7960

最后编辑:6 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文