MediaDevices

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.

* Some parts of this feature may have varying levels of support.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Giao diện MediaDevices của Media Capture and Streams API cung cấp quyền truy cập vào các thiết bị đầu vào phương tiện đã kết nối như camera và microphone, cũng như chia sẻ màn hình. Về bản chất, nó cho phép bạn truy cập bất kỳ nguồn phần cứng nào tạo ra dữ liệu phương tiện.

EventTarget MediaDevices

Thuộc tính instance

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

Phương thức instance

Kế thừa các phương thức từ giao diện cha, EventTarget.

enumerateDevices()

Lấy một mảng thông tin về các thiết bị đầu vào và đầu ra phương tiện có sẵn trên hệ thống.

getSupportedConstraints()

Trả về một đối tượng phù hợp với MediaTrackSupportedConstraints, cho biết những thuộc tính có thể ràng buộc nào được hỗ trợ trên giao diện MediaStreamTrack. Xem Media Streams API để tìm hiểu thêm về các ràng buộc và cách sử dụng chúng.

getDisplayMedia()

Nhắc người dùng chọn một màn hình hoặc một phần của màn hình (chẳng hạn như một cửa sổ) để thu lại dưới dạng MediaStream cho mục đích chia sẻ hoặc ghi hình. Trả về một promise được resolve thành MediaStream.

getUserMedia()

Với sự cho phép của người dùng thông qua hộp thoại nhắc, bật camera và/hoặc microphone trên hệ thống và cung cấp một MediaStream chứa track video và/hoặc audio với nguồn đầu vào.

selectAudioOutput() Experimental

Nhắc người dùng chọn một thiết bị đầu ra âm thanh cụ thể.

Sự kiện

devicechange

Được kích hoạt khi một thiết bị đầu vào hoặc đầu ra phương tiện được gắn vào hoặc tháo ra khỏi máy tính của người dùng.

Ví dụ

js
// Đặt các biến trong phạm vi toàn cục để chúng có thể dùng trong console của trình duyệt.
const video = document.querySelector("video");
const constraints = {
  audio: false,
  video: true,
};

navigator.mediaDevices
  .getUserMedia(constraints)
  .then((stream) => {
    const videoTracks = stream.getVideoTracks();
    console.log("Got stream with constraints:", constraints);
    console.log(`Using video device: ${videoTracks[0].label}`);
    stream.onremovetrack = () => {
      console.log("Stream ended");
    };
    video.srcObject = stream;
  })
  .catch((error) => {
    if (error.name === "OverconstrainedError") {
      console.error(
        `The resolution ${constraints.video.width.exact}x${constraints.video.height.exact} px is not supported by your device.`,
      );
    } else if (error.name === "NotAllowedError") {
      console.error(
        "You need to grant this page permission to access your camera and microphone.",
      );
    } else {
      console.error(`getUserMedia error: ${error.name}`, error);
    }
  });

Thông số kỹ thuật

Specification
Media Capture and Streams
# mediadevices

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

Xem thêm