UNPKG

diginext-utils

Version:
43 lines (42 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.requestCamera = void 0; const requestCamera = ({ audio = true, video = true }) => { if (typeof window == "undefined") return false; return new Promise((resolve, reject) => { // Older browsers might not implement mediaDevices at all, so we set an empty object first // if (navigator.mediaDevices === undefined) { // navigator.mediaDevices = {}; // } // Some browsers partially implement mediaDevices. We can't just assign an object // with getUserMedia as it would overwrite existing properties. // Here, we will just add the getUserMedia property if it's missing. if (navigator.mediaDevices.getUserMedia === undefined) { navigator.mediaDevices.getUserMedia = function (constraints) { // First get ahold of the legacy getUserMedia, if present var getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia; // Some browsers just don't implement it - return a rejected promise with an error // to keep a consistent interface if (!getUserMedia) { return Promise.reject(new Error("getUserMedia is not implemented in this browser")); } // Otherwise, wrap the call to the old navigator.getUserMedia with a Promise return new Promise(function (resolve, reject) { getUserMedia.call(navigator, constraints, resolve, reject); }); }; } navigator.mediaDevices .getUserMedia({ audio, video }) .then(function (stream) { resolve(true); }) .catch(function (err) { console.log(err.name + ": " + err.message); resolve(false); }); }); }; exports.requestCamera = requestCamera; exports.default = exports.requestCamera;