MediaRecorderErrorEvent:error 属性

已弃用:此功能不再推荐。尽管某些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,可能正在被删除,或者可能仅出于兼容性目的保留。避免使用它,如果可能,更新现有代码;请查看此页面底部的兼容性表,以指导您的决定。请注意,此功能可能随时停止工作。

非标准:此功能是非标准的,并且不在任何标准跟踪中。不要在面向 Web 的生产站点上使用它:它不会为所有用户工作。实现之间也可能存在很大的不兼容性,并且行为可能会在将来发生变化。

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

当发生 MediaRecorderErrorEvent 时,您可以通过检查 MediaRecordererror 事件处理程序 onerror 中收到的 MediaRecorderErrorEvent 中的 error 属性来确定出错的原因。

一个 DOMException,描述了事件表示的错误。错误的 name 属性的值可能是处理媒体录制期间发生的任何异常,包括规范中专门标识的这些异常。这里的描述是通用的;您将在相应方法参考中找到更多特定于各种情况的描述,这些描述可能发生在它们可能发生的各种场景中。

InvalidStateError

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

NotSupportedError

无法创建 MediaRecorder,因为指定的选项无效。message 属性应提供更多信息(如果存在)。

SecurityError

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

InvalidModificationError

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

UnknownError

发生了与安全无关的错误,无法进行其他分类。录制停止,MediaRecorderstate 变成 inactive,最后一个 dataavailable 事件发送到 MediaRecorder,包含接收到的剩余数据,最后发送 stop 事件。

示例

基本错误处理示例

此函数为给定的 MediaStream 创建并返回一个 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;
}

规范

此功能不再是任何规范的一部分,并且不再有成为标准的途径。

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅