Spec-Zone.ru › Web APIs

Метод Navigator: getUserMedia()

Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её поддерживать, она может быть удалена из соответствующих веб-стандартов, может быть в процессе удаления или сохраняться только для совместимости. Избегайте её использования и обновите существующий код, если это возможно; см. таблицу совместимости внизу этой страницы для принятия решения. Помните, что эта функция может перестать работать в любой момент.

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Устаревший Navigator.getUserMedia() метод запрашивает у пользователя разрешение на использование до одного устройства ввода видео (например, веб-камеры или общего экрана) и до одного устройства ввода аудио (например, микрофона) в качестве источника для MediaStream.

Если разрешение предоставлено, a MediaStream со звуковыми и/или видеодорожками, взятыми с этих устройств, передаётся указанному обработчику успеха. Если разрешение отказано, совместимых устройств ввода нет или произошла любая другая ошибка, обработчик ошибок выполняется с объектом, описывающим возникшую проблему. Если пользователь не сделает выбор вообще, ни один обработчик не выполняется.

Примечание: Это устаревший метод. Пожалуйста, используйте более новый navigator.mediaDevices.getUserMedia() вместо него. Хотя технически он не устарел, этот старый вариант с обратным вызовом отмечен как такой, так как спецификация настоятельно рекомендует использовать новую версию, возвращающую промис.

Синтаксис

getUserMedia(constraints, successCallback, errorCallback)

Параметры

constraints

Объект, определяющий типы запрошенных медиаданных и требования к каждому типу. Для получения подробной информации см. раздел «Ограничения» в современном методе MediaDevices.getUserMedia(), а также статью Возможности, ограничения и настройки.

successCallback

Функция, которая вызывается, когда запрос на доступ к медиаданным одобрен. Функция вызывается с одним параметром: объектом MediaStream, содержащим поток медиаданных. Ваш обработчик может затем назначить поток нужному объекту (например, элементу <audio> или <video>), как показано в следующем примере:

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

При ошибке вызывается функция, указанная в errorCallback, с объектом в качестве единственного аргумента; этот объект моделируется по DOMException.

Возвращаемое значение

Ничего (undefined).

Примеры

Ширина и высота

Вот пример использования getUserMedia(), включая код для обработки префиксов различных браузеров. Обратите внимание, что это устаревший способ сделать это: см. раздел «Примеры» в MediaDevices.getUserMedia() для современных примеров.

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");
}

Спецификации

Спецификация
Захват медиа и потоки
# dom-navigator-getusermedia

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
getUserMedia 5321 1279 17 401512–15 11–12 5325 24 411412–14 11–12 6.01.5 5340

См. также

  • MediaDevices.getUserMedia() который заменяет этот устаревший метод.
  • WebRTC - стартовая страница API
  • API захвата медиа и потоков - API для объектов потоков медиа
  • Снимок веб-камеры - обучающее пособие по использованию getUserMedia() для фотосъёмки вместо видео.

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API