MediaRecorder:error 事件

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

MediaRecorder 介面的 error 事件在發生錯誤時觸發:例如,錄製未被允許或嘗試使用不支援的編解碼器進行錄製。

此事件不可取消,也不會冒泡。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("error", (event) => { })

onerror = (event) => { }

事件型別

一個 MediaRecorderErrorEvent。繼承自 Event

事件屬性

繼承自其父介面 Event 的屬性。.

error 只讀

一個 DOMException,包含有關發生的錯誤的信心。

描述

觸發

當錄製器在其生命週期內發生錯誤時呼叫的函式。除了可能發生的其他一般性錯誤之外,在使用 MediaStream Recording API 時,特別可能發生以下錯誤;要確定發生了哪種錯誤,請檢查 MediaRecorderErrorEvent.error.name 的值。

SecurityError

MediaStream 被配置為不允許錄製。例如,當用戶拒絕使用輸入裝置的許可權時,使用 getUserMedia() 獲取的源可能出現這種情況。

InvalidModificationError

正在錄製的流上的軌道數量已更改。在錄製媒體期間,您無法新增或刪除軌道。

UnknownError

發生了一個無法歸類的非安全相關錯誤。錄製停止,MediaRecorderstate 變為 inactive,最後一個 dataavailable 事件會發送給 MediaRecorder,包含剩餘的接收資料,最後傳送一個 stop 事件。

示例

使用 addEventListener() 來監聽 error 事件。

js
async function record() {
  const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
  const recorder = new MediaRecorder(stream);
  recorder.addEventListener("error", (event) => {
    console.error(`error recording stream: ${event.error.name}`);
  });
  recorder.start();
}

record();

相同,但使用 onerror 事件處理程式屬性。

js
async function record() {
  const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
  const recorder = new MediaRecorder(stream);
  recorder.onerror = (event) => {
    console.error(`error recording stream: ${event.error.name}`);
  };
  recorder.start();
}

record();

規範

規範
MediaStream Recording
# dom-mediarecorder-onerror

瀏覽器相容性

另見