MediaRecorder:错误事件

error 事件是 MediaRecorder 接口的一个事件,当发生错误时触发:例如,由于录制未被允许或尝试使用不受支持的编解码器。

此事件不可取消,也不会冒泡。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("event", (event) => {});

onevent = (event) => {};

事件类型

一个 MediaRecorderErrorEvent。继承自 Event

事件属性

继承其父接口 Event 的属性.

error 只读

一个 DOMException,包含有关发生的错误的信息。

描述

触发

每当在录制器生命周期中发生错误时调用的函数。除了可能发生的其它常规错误之外,在使用媒体流录制 API 时,以下错误也可能发生;要确定发生了哪个错误,请检查 MediaRecorderErrorEvent.error.name 的值。

SecurityError

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

InvalidModificationError

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

UnknownError

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

示例

使用 addEventListener() 监听 error 事件

js
async function record() {
  const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
  const recorder = new MediaRecorder(stream);
  recorder.addEventListener("error", (event) => {
    console.error(`error recording stream: ${event.error.name}`);
  });
  recorder.start();
}

record();

相同,但使用 onerror 事件处理程序属性

js
async function record() {
  const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
  const recorder = new MediaRecorder(stream);
  recorder.onerror = (event) => {
    console.error(`error recording stream: ${event.error.name}`);
  };
  recorder.start();
}

record();

规范

规范
媒体流录制
# dom-mediarecorder-onerror

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅