MediaRecorderErrorEvent:error 属性

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。

MediaRecorderErrorEvent 接口的只读属性 **error** 是一个 DOMException 对象,提供了有关 MediaRecorder 实例抛出的异常的详细信息。

当发生 MediaRecorderErrorEvent 时,您可以通过检查 MediaRecordererror 事件处理程序(onerror)中收到的 MediaRecorderErrorEvent 里的 error 属性,在一定程度上确定出了什么问题。

一个 DOMException,描述了事件所代表的错误。该错误的 name 属性的值可能是任何在处理媒体录制时有意义的异常,包括规范中特别标识的异常。这里的描述是通用的;您将在相应的 API 参考中找到它们可能发生的各种场景下更具体的描述。

InvalidStateError

在不允许的操作上下文中尝试执行某项操作,或者对已删除或移除的对象发出了请求。

NotSupportedError

由于指定的选项无效而无法创建 MediaRecorder。如果存在,message 属性应提供更多信息。

SecurityError

MediaStream 被配置为不允许录制。例如,通过 getUserMedia() 获取的源,当用户拒绝使用输入设备权限时,可能出现这种情况。

InvalidModificationError

正在录制的流中的轨道数量已更改。在录制媒体时,您不能添加或删除轨道。

UnknownError

发生了无法分类的非安全相关错误。录制停止,MediaRecorderstate 变为 inactive,将向 MediaRecorder 发送最后一个 dataavailable 事件,其中包含剩余的已接收数据,最后发送一个 stop 事件。

示例

基本错误处理示例

此函数为给定的 MediaStream 创建并返回一个 MediaRecorder,该 MediaRecorder 被配置为将数据缓冲到数组中并监视错误。

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

  try {
    recorder = new MediaRecorder(stream);
  } catch (err) {
    /* exception while trying to create the recorder; handle that */
  }

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

  recorder.onerror = (event) => {
    console.error(`Error: ${event.error}`);
  };

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

规范

此功能不再是任何规范的一部分,也无法成为标准。

浏览器兼容性

另见