MediaRecorderErrorEvent:error 属性
已弃用:此功能不再推荐。尽管某些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,可能正在被删除,或者可能仅出于兼容性目的保留。避免使用它,如果可能,更新现有代码;请查看此页面底部的兼容性表,以指导您的决定。请注意,此功能可能随时停止工作。
非标准:此功能是非标准的,并且不在任何标准跟踪中。不要在面向 Web 的生产站点上使用它:它不会为所有用户工作。实现之间也可能存在很大的不兼容性,并且行为可能会在将来发生变化。
error
是 MediaRecorderErrorEvent
接口的只读属性,它是一个 DOMException
对象,提供有关由 MediaRecorder
实例抛出的异常的详细信息。
当发生 MediaRecorderErrorEvent
时,您可以通过检查 MediaRecorder
的 error
事件处理程序 onerror
中收到的 MediaRecorderErrorEvent
中的 error
属性来确定出错的原因。
值
一个 DOMException
,描述了事件表示的错误。错误的 name
属性的值可能是处理媒体录制期间发生的任何异常,包括规范中专门标识的这些异常。这里的描述是通用的;您将在相应方法参考中找到更多特定于各种情况的描述,这些描述可能发生在它们可能发生的各种场景中。
InvalidStateError
-
尝试在不允许的上下文中执行操作,或者对已删除或移除的对象进行请求。
NotSupportedError
-
无法创建
MediaRecorder
,因为指定的选项无效。message
属性应提供更多信息(如果存在)。 SecurityError
-
MediaStream
配置为不允许录制。例如,当用户拒绝使用输入设备的权限时,使用getUserMedia()
获取的源可能会出现这种情况。 InvalidModificationError
-
正在录制的流上的轨道数量已更改。在录制媒体时,您不能添加或删除轨道。
UnknownError
-
发生了与安全无关的错误,无法进行其他分类。录制停止,
MediaRecorder
的state
变成inactive
,最后一个dataavailable
事件发送到MediaRecorder
,包含接收到的剩余数据,最后发送stop
事件。
示例
基本错误处理示例
此函数为给定的 MediaStream
创建并返回一个 MediaRecorder
,配置为将数据缓冲到数组中并监视错误。
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 表仅在浏览器中加载