MediaRecorder.onerror - Web APIs 编辑

The MediaRecorder interface's onerror event handler is called by the MediaStream Recording API when an error occurs. You can provide an event handler to deal with errors that occur while creating or using a media recorder. The error object is of type MediaRecorderErrorEvent, and its error property contains a DOMException object that describes the error that occurred.

Syntax

MediaRecorder.onerror = errorHandlerFunction;

Value

A function to be called whenever an error occurs during the recorder's lifetime. In addition to other general errors that might occur, the following errors are specifically possible when using the MediaStream Recording API; to determine which occurred, check the value of MediaRecorderErrorEvent.error.name.

InvalidStateError
An attempt was made to stop or pause or an inactive recorder, start or resume an active recorder, or otherwise manipulate the MediaRecorder while in the wrong state. This exception can also occur when a request is made on a source that has been deleted or removed.
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.
NotSupportedError
An attempt was made to instantiate a MediaRecorder using a MIME type that isn't supported on the user's device; one or more of the requested container, codecs, or profiles as well as other information may be invalid.
InvalidModificationError
The number of tracks on the stream being recorded has changed. You can't add or remove tracks while recording media.
UnknownError
An non-security related error occurred that cannot otherwise be categorized. Recording stops, the MediaRecorder's state becomes inactive, one last dataavailable event is sent to the MediaRecorder with the remaining received data, and finally a stop event is sent.

These errors may occur either directly because of a call to a MediaRecorder method, or indirectly due to a problem arising during the recording process.

Example

This example creates a new MediaRecorder instance and starts recording using the user agent's default media format. It returns either the MediaRecorder or the name of the error that occurred if any exceptions are thrown during the setup process.

function recordStream(stream) {
  let recorder = null;
  let bufferList = [];

  try {
    recorder = new MediaRecorder(stream);
  } catch(err) {
    return err.name;     /* return the error name */
  }

  recorder.ondataavailable = function(event) {
    bufferList.push(event.data);
  };

  recorder.onerror = function(event) {
    let error = event.error;

    switch(error.name) {
      case InvalidStateError:
        showNotification("You can't record the video right " +
                         "now. Try again later.");
        break;
      case SecurityError:
        showNotification("Recording the specified source " +
                         "is not allowed due to security " +
                         "restrictions.");
        break;
      default:
        showNotification("A problem occurred while trying " +
                         "to record the video.");
        break;
    }
  };

  /* this would be a good place to create a Worker to handle
     writing the buffers to disk periodically */

  recorder.start(100);  /* 100ms time slices per buffer */
  return recorder;
}

Specifications

SpecificationStatusComment
MediaStream Recording
The definition of 'MediaRecorder.onerror' in that specification.
Working DraftInitial definition

Browser compatibility

BCD tables only load in the browser

See also

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

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

发布评论

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

词条统计

浏览:57 次

字数:7318

最后编辑:8年前

编辑次数:0 次

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