MediaRecorder:requestData() 方法

requestData()MediaRecorder 接口的方法,用于触发包含捕获媒体 Blob 对象的 dataavailable 事件,该事件在调用该方法时生成。然后可以根据需要获取和操作该事件。

当调用 requestData() 方法时,浏览器会将一个任务排队,该任务执行以下步骤

  1. 如果 MediaRecorder.state 为 "inactive",则触发 DOM InvalidState 错误并终止这些步骤。如果 MediaRecorder.state 不为 "inactive",则继续执行下一步。
  2. 触发包含当前捕获数据的 Blobdataavailable 事件(该 Blob 可通过事件的 data 属性访问)。
  3. 创建一个新的 Blob,并将随后捕获的数据放入其中。

语法

js
requestData()

参数

无。

返回值

无 (undefined).

异常

InvalidStateError DOMException

如果 MediaRecorder 当前处于 "inactive" 状态,则会抛出此异常;如果 MediaRecorder 未处于活动状态,则无法捕获录制内容。

示例

js
captureMedia.onclick = () => {
  mediaRecorder.requestData();
  // makes snapshot available of data so far
  // ondataavailable fires, then capturing continues
  // in new Blob
};

规范

规范
MediaStream Recording
# dom-mediarecorder-requestdata

浏览器兼容性

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

另请参阅