MediaRecorder: stop() 方法

Baseline 已广泛支持

此特性已得到良好支持,可在多种设备和浏览器版本上使用。自 2021 年 4 月起,所有浏览器均已支持此特性。

MediaRecorder 接口的 stop() 方法用于停止媒体捕获。

调用 stop() 方法时,用户代理 (UA) 会将一个任务加入队列,该任务会执行以下步骤:

  1. 如果 MediaRecorder.state 是“inactive”(非活动),则抛出一个 DOM InvalidState 错误并终止这些步骤。如果 MediaRecorder.state 不是“inactive”,则继续执行下一步。
  2. MediaRecorder.state 设置为“inactive”,并停止捕获媒体。
  3. 抛出一个 dataavailable 事件,其中包含已收集数据的 Blob。
  4. 抛出一个 stop 事件。

语法

js
stop()

参数

无。

返回值

无(undefined)。

异常

InvalidStateError DOMException

如果 MediaRecorder 当前处于 "inactive" 状态,则抛出此异常;如果 MediaRecorder 未处于活动状态,则无法停止录制。

示例

js
stop.onclick = () => {
  mediaRecorder.stop();
  console.log("recorder stopped, data available");
};

规范

规范
MediaStream Recording
# dom-mediarecorder-stop

浏览器兼容性

另见