MediaRecorderErrorEvent:error 屬性

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。

MediaRecorderErrorEvent 介面的只讀屬性 **error** 是一個 DOMException 物件,提供了有關 MediaRecorder 例項丟擲的異常的詳細資訊。

當發生 MediaRecorderErrorEvent 時,您可以透過檢查 MediaRecordererror 事件處理程式(onerror)中收到的 MediaRecorderErrorEvent 裡的 error 屬性,在一定程度上確定出了什麼問題。

一個 DOMException,描述了事件所代表的錯誤。該錯誤的 name 屬性的值可能是任何在處理媒體錄製時有意義的異常,包括規範中特別標識的異常。這裡的描述是通用的;您將在相應的 API 參考中找到它們可能發生的各種場景下更具體的描述。

InvalidStateError

在不允許的操作上下文中嘗試執行某項操作,或者對已刪除或移除的物件發出了請求。

NotSupportedError

由於指定的選項無效而無法建立 MediaRecorder。如果存在,message 屬性應提供更多資訊。

SecurityError

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

InvalidModificationError

正在錄製的流中的軌道數量已更改。在錄製媒體時,您不能新增或刪除軌道。

UnknownError

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

示例

基本錯誤處理示例

此函式為給定的 MediaStream 建立並返回一個 MediaRecorder,該 MediaRecorder 被配置為將資料緩衝到陣列中並監視錯誤。

js
function recordStream(stream) {
  let recorder = null;
  let bufferList = [];

  try {
    recorder = new MediaRecorder(stream);
  } catch (err) {
    /* exception while trying to create the recorder; handle that */
  }

  recorder.ondataavailable = (event) => {
    bufferList.push(event.data);
  };

  recorder.onerror = (event) => {
    console.error(`Error: ${event.error}`);
  };

  recorder.start(100); /* 100ms time slices per buffer */
  return recorder;
}

規範

此功能不再是任何規範的一部分,也無法成為標準。

瀏覽器相容性

另見