Камера
getUserMedia() метод возвращает потоки медиа с камер и микрофонов
Готово к запуску
const stream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: 'environment' }, audio: false });
const video = document.querySelector('video');
video.srcObject = stream;
// Stop:
stream.getTracks().forEach(t => t.stop());
Параметр constraints - объект, определяющий запрашиваемые медиатипы, вместе с требованиями для каждого типа.
Запросить и audio и video типы без дополнительных условий:
{ audio: true, video: true }
enumerateDevices() метод для получения списка доступных медиа-устройств
Готово к запуску
const devices = await navigator.mediaDevices.enumerateDevices();
devices.forEach(device => {
console.log(`${device.kind}: ${device.label} id = ${device.deviceId}`);
});
Метод возвращает Promise, который разрешается в массив объектов MediaDeviceInfo
Свойства объекта:
deviceId- идентификатор устройстваkind- тип устройства (audioinput, audiooutput, videoinput)label- название устройстваgroupId- идентификатор группы
getDisplayMedia() метод для захвата экрана или его части
Готово к запуску
const stream = await navigator.mediaDevices.getDisplayMedia({
video: { cursor: 'always' },
audio: false
});
const video = document.querySelector('video');
video.srcObject = stream;
// Stop:
stream.getTracks().forEach(t => t.stop());
Параметр constraints - объект с настройками захвата
Основные опции для video:
cursor- отображение курсора ('never', 'always', 'motion')displaySurface- тип поверхности ('monitor', 'window', 'browser')logicalSurface- захват логической поверхности (true/false)
QR Scanner Считывание QR кода с помощью камеры
Готово к запуску
// <script src="https://unpkg.com/[email protected]/html5-qrcode.min.js"></script>
const html5QrCode = new Html5Qrcode("qr-reader");
await html5QrCode.start(
{ facingMode: "environment" },
{ fps: 10, qrbox: { width: 250, height: 250 } },
(decodedText, decodedResult) => {
console.log('QR code:', decodedText);
},
(errorMessage) => {
// console.error(errorMessage);
}
);
// Stop:
await html5QrCode.stop();
Для считывания QR кодов используется библиотека html5-qrcode
Основные параметры:
facingMode- выбор камеры ('user' - фронтальная, 'environment' - основная)fps- частота сканирования (кадров в секунду)qrbox- размер области сканирования