MediaRecorder:错误事件
error
事件是 MediaRecorder
接口的一个事件,当发生错误时触发:例如,由于录制未被允许或尝试使用不受支持的编解码器。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener()
之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("event", (event) => {});
onevent = (event) => {};
事件类型
一个 MediaRecorderErrorEvent
。继承自 Event
。
事件属性
继承其父接口 Event
的属性.
error
只读-
一个
DOMException
,包含有关发生的错误的信息。
描述
触发
每当在录制器生命周期中发生错误时调用的函数。除了可能发生的其它常规错误之外,在使用媒体流录制 API 时,以下错误也可能发生;要确定发生了哪个错误,请检查 MediaRecorderErrorEvent.error.name
的值。
SecurityError
-
MediaStream
配置为不允许录制。例如,当用户拒绝使用输入设备的权限时,使用getUserMedia()
获取的源可能会出现这种情况。 InvalidModificationError
-
正在录制的流上的轨道数量已更改。在录制媒体时,不能添加或删除轨道。
UnknownError
-
发生了与安全无关的错误,无法进行其他分类。录制停止,
MediaRecorder
的state
变为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 的浏览器中加载。