MediaRecorder:requestData() 方法
requestData()
是 MediaRecorder
接口的方法,用于触发包含捕获媒体 Blob
对象的 dataavailable
事件,该事件在调用该方法时生成。然后可以根据需要获取和操作该事件。
当调用 requestData()
方法时,浏览器会将一个任务排队,该任务执行以下步骤
- 如果
MediaRecorder.state
为 "inactive",则触发 DOMInvalidState
错误并终止这些步骤。如果MediaRecorder.state
不为 "inactive",则继续执行下一步。 - 触发包含当前捕获数据的
Blob
的dataavailable
事件(该 Blob 可通过事件的data
属性访问)。 - 创建一个新的 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 的浏览器中加载。
另请参阅
- 使用 MediaStream Recording API
- Web 录音机:MediaRecorder + getUserMedia + Web Audio API 可视化演示,作者 Chris Mills (GitHub 上的源代码)。
- simpl.info MediaStream Recording 演示,作者 Sam Dutton。
Navigator.getUserMedia()