Spec-Zone.ru › Web APIs

API захвата изображений MediaStream

Экспериментально: Это экспериментальная технология
Перед использованием в производстве тщательно проверьте таблицу совместимости браузеров.

API захвата изображений MediaStream — это API для захвата изображений или видео с фотоустройства. Помимо захвата данных, он также позволяет получать информацию о возможностях устройства, таких как размер изображения, уменьшение эффекта красных глаз, наличие и текущие настройки вспышки. Наоборот, API позволяет настраивать возможности в рамках ограничений, накладываемых устройством.

Концепции и использование захвата изображений MediaStream

Процесс получения потока изображения или видео происходит следующим образом. Приведенный пример кода адаптирован из примеров захвата изображений Chrome.

Сначала получите ссылку на устройство, вызвав MediaDevices.getUserMedia(). В примере ниже сказано, что нужно взять любое доступное видеоустройство, хотя метод getUserMedia() позволяет запросить более конкретные возможности. Этот метод возвращает Promise, который разрешается объектом MediaStream.

navigator.mediaDevices.getUserMedia({ video: true }).then((mediaStream) => {
  // Do something with the stream.
});

Далее, изолируйте визуальную часть потока медиа, вызвав MediaStream.getVideoTracks(). Это возвращает массив объектов MediaStreamTrack. В приведенном ниже коде предполагается, что первый элемент в массиве MediaStreamTrack — тот, который нужно использовать. Вы можете использовать свойства объектов MediaStreamTrack для выбора нужного.

const track = mediaStream.getVideoTracks()[0];

На этом этапе вы, возможно, захотите настроить возможности устройства перед захватом изображения. Сделать это можно, вызвав applyConstraints() для объекта трека до выполнения любых других действий.

let zoom = document.querySelector("#zoom");
const capabilities = track.getCapabilities();
// Check whether zoom is supported or not.
if (!capabilities.zoom) {
  return;
}
track.applyConstraints({ advanced: [{ zoom: zoom.value }] });

Наконец, передайте объект MediaStreamTrack в конструктор ImageCapture(). Хотя MediaStream содержит несколько типов треков и предоставляет несколько методов для их получения, конструктор ImageCapture выбросит исключение DOMException типа NotSupportedError , если MediaStreamTrack.kind не равен "video".

let imageCapture = new ImageCapture(track);

Интерфейсы

ImageCapture Экспериментально

Интерфейс для захвата изображений с фотоустройства, на которое ссылается допустимый объект MediaStreamTrack.

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

Спецификация
Захват изображения MediaStream
# imagecaptureapi

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

Десктоп Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
ImageCapture 59 79 35 46 17.4 59 Нет 43 17.4 7.0 59
MediaStream_Image_Capture_API 59 79 35 46 17.4 59 Нет 43 17.4 7.0 59
getPhotoCapabilities 59 79 Нет 46 17.4 59 Нет 43 17.4 7.0 59
getPhotoSettings 61 79 Нет 46 17.4 61 Нет 43 17.4 8.0 61
grabFrame 59 79 Нет 46 Нет 59 Нет 43 Нет 7.0 59
takePhoto 60
59–60photoSettings параметр не поддерживается.
79 35 47
46–47photoSettings параметр не поддерживается.
17.4 60
59–60photoSettings параметр не поддерживается.
Нет 44
43–44photoSettings параметр не поддерживается.
17.4 8.0
7.0–8.0photoSettings параметр не поддерживается.
60
59–60photoSettings параметр не поддерживается.
track 59 79 35 46 17.4 59 Нет 43 17.4 7.0 59

См. также

  • MediaStream
  • MediaStreamTrack

© 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/MediaStream_Image_Capture_API

Spec-Zone.ru

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