MediaRecorder: requestData() 方法
MediaRecorder 介面的 requestData() 方法用於觸發一個 dataavailable 事件,該事件包含一個 Blob 物件,其中是呼叫該方法時捕獲到的媒體資料。然後你可以按需獲取並操作這個 Blob。
當呼叫 requestData() 方法時,瀏覽器會排隊一個任務來執行以下步驟:
- 如果
MediaRecorder.state是 "inactive"(非活動狀態),則丟擲一個 DOMInvalidState錯誤並終止這些步驟。如果MediaRecorder.state不是 "inactive",則繼續執行下一步。 - 觸發一個
dataavailable事件,其中包含當前捕獲資料的Blob(該 Blob 可透過事件的data屬性訪問)。 - 建立一個新的 Blob,並將後續捕獲的資料放入其中。
語法
js
requestData()
引數
無。
返回值
無(undefined)。
異常
InvalidStateErrorDOMException-
如果
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 |
瀏覽器相容性
載入中…
另見
- 使用 MediaStream Recording API
- Web Dictaphone:MediaRecorder + getUserMedia + Web Audio API 視覺化演示,由 Chris Mills 製作(GitHub 原始碼)。
- simpl.info MediaStream 錄製演示,由 Sam Dutton 製作。
Navigator.getUserMedia()