Navigator: phương thức getUserMedia()

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

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

Phương thức Navigator.getUserMedia() không được dùng nữa sẽ nhắc người dùng cấp quyền sử dụng tối đa một thiết bị đầu vào video (chẳng hạn như máy ảnh hoặc màn hình dùng chung) và tối đa một thiết bị đầu vào âm thanh (chẳng hạn như micrô) làm nguồn cho MediaStream.

Nếu được cấp quyền, MediaStream có bản nhạc video và/hoặc âm thanh đến từ các thiết bị đó sẽ được gửi đến lệnh gọi lại thành công đã chỉ định. Nếu quyền bị từ chối, không tồn tại thiết bị đầu vào tương thích hoặc bất kỳ tình trạng lỗi nào khác xảy ra, lệnh gọi lại lỗi sẽ được thực thi với một đối tượng mô tả sự cố. Thay vào đó, nếu người dùng không đưa ra lựa chọn nào thì cả cuộc gọi lại đều không được thực thi.

[!LƯU Ý] Đây là một phương pháp cũ. Thay vào đó, vui lòng sử dụng navigator.mediaDevices.getUserMedia() mới hơn. Mặc dù về mặt kỹ thuật không được dùng nữa nhưng phiên bản gọi lại cũ này được đánh dấu như vậy vì đặc tả khuyến khích sử dụng phiên bản trả lại lời hứa mới hơn.

Cú pháp

js
getUserMedia(constraints, successCallback, errorCallback)

Thông số

constraints

Một đối tượng chỉ định các loại phương tiện truyền thông tới yêu cầu, kèm theo các yêu cầu đối với từng loại. Để biết chi tiết, hãy xem constraints phần theo phương pháp MediaDevices.getUserMedia() hiện đại như bài viết Capabilities, constraints, and settings.

successCallback

Một chức năng được gọi khi yêu cầu truy cập phương tiện được phê duyệt. các hàm được gọi với một tham số: đối tượng MediaStream chứa luồng phương tiện. Cuộc gọi lại của bạn sau đó có thể gán luồng cho mong muốn đối tượng (chẳng hạn như phần tử <audio> hoặc <video>), như thể hiện trong ví dụ sau:

js
    function successCallback(stream) {
      const video = document.querySelector("video");
      video.srcObject = stream;
      video.onloadedmetadata = (e) => {
        // Do something with the video here.
      };
    }
    ```

- `errorCallback`
  - : Khi cuộc gọi không thành công, chức năng được chỉ định trong `errorCallback` là
    được gọi với một đối tượng làm đối số duy nhất của nó; cái này
    đối tượng được mô hình hóa trên DOMException.

### Giá trị trả về

Không có (undefined).

## Ví dụ

### Chiều rộng và chiều cao

Đây là ví dụ về cách sử dụng `getUserMedia()`, bao gồm mã để xử lý
tiền tố của các trình duyệt khác nhau. Lưu ý rằng đây là cách thực hiện không được dùng nữa: Xem
Phần [Examples](/vi/docs/Web/API/MediaDevices/getUserMedia#frame_rate)
theo MediaDevices.getUserMedia() cho các ví dụ hiện đại.

```js
navigator.getUserMedia =
  navigator.getUserMedia ||
  navigator.webkitGetUserMedia ||
  navigator.mozGetUserMedia;

if (navigator.getUserMedia) {
  navigator.getUserMedia(
    { audio: true, video: { width: 1280, height: 720 } },
    (stream) => {
      const video = document.querySelector("video");
      video.srcObject = stream;
      video.onloadedmetadata = (e) => {
        video.play();
      };
    },
    (err) => {
      console.error(`The following error occurred: ${err.name}`);
    },
  );
} else {
  console.log("getUserMedia not supported");
}

Thông số kỹ thuật

Thông số kỹ thuật
Media Capture and Streams
# dom-navigator-getusermedia

Khả năng tương thích của trình duyệt

Xem thêm