MediaRecorder: sự kiện error

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sự kiện error của giao diện MediaRecorder được kích hoạt khi xảy ra lỗi: ví dụ vì việc ghi không được phép hoặc được thực hiện bằng codec không được hỗ trợ.

Sự kiện này không thể huỷ và không nổi bọt.

Cú pháp

Dùng tên sự kiện trong các phương thức như addEventListener(), hoặc đặt thuộc tính trình xử lý sự kiện.

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

onerror = (event) => { }

Loại sự kiện

Một MediaRecorderErrorEvent. Kế thừa từ Event.

Thuộc tính sự kiện

Kế thừa thuộc tính từ giao diện cha Event.

error Read only

Một DOMException chứa thông tin về lỗi đã xảy ra.

Mô tả

Nguyên nhân kích hoạt

Hàm được gọi bất cứ khi nào xảy ra lỗi trong suốt vòng đời của đối tượng ghi. Ngoài các lỗi chung khác có thể xảy ra, các lỗi sau đây có thể xảy ra khi sử dụng MediaStream Recording API; để xác định lỗi nào đã xảy ra, hãy kiểm tra giá trị của MediaRecorderErrorEvent.error.name.

SecurityError

MediaStream được cấu hình để không cho phép ghi. Điều này có thể xảy ra, ví dụ, với các nguồn được lấy bằng getUserMedia() khi người dùng từ chối quyền sử dụng thiết bị đầu vào.

InvalidModificationError

Số lượng track trên luồng đang được ghi đã thay đổi. Bạn không thể thêm hoặc xóa track trong khi đang ghi phương tiện.

UnknownError

Xảy ra lỗi không liên quan đến bảo mật mà không thể phân loại khác. Việc ghi dừng lại, state của MediaRecorder trở thành inactive, sự kiện dataavailable cuối cùng được gửi đến MediaRecorder với dữ liệu còn lại nhận được, và cuối cùng sự kiện stop được gửi.

Ví dụ

Dùng addEventListener() để lắng nghe sự kiện 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();

Tương tự, nhưng dùng thuộc tính trình xử lý sự kiện 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();

Thông số kỹ thuật

Specification
MediaStream Recording
# dom-mediarecorder-onerror

Tương thích trình duyệt

Xem thêm