Вы не указали, в каком формате вы хотите получать изображения, снятые с веб-камеры. Их довольно легко доставить в элемент <canvas />
.
- Вы используете gUM для открытия видеопотока, затем
- просматриваете его в элементе
<video />
, затем - используете drawImage, чтобы скопировать снимок этого элемент к вашему холсту.
Вот пример кода, основанный на «официальном» примере webrt c.
Initialize
const video = document.querySelector('video');
const canvas = document.querySelector('canvas');
canvas.width = 480;
canvas.height = 360;
const button = document.querySelector('button');
Обработчик нажатия кнопки снимка
См. Вызов метода drawImage()
... вот что захватывает моментальный снимок элемента предварительного просмотра видео.
button.onclick = function() {
/* set the canvas to the dimensions of the video feed */
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
/* make the snapshot */
canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height);
};
Запуск и предварительный просмотр потока видео
navigator.mediaDevices.getUserMedia( {audio: false, video: true })
.then(stream => video.srcObject = stream)
.catch(error => console.error(error);
Очевидно, это очень просто. Параметр, который вы передаете в gUM, является MediaStreamConstraints объектом. Это дает вам большой контроль над видео (и аудио), который вы хотите захватить.