diginext-utils
Version:
README.md
43 lines (42 loc) • 2.04 kB
JavaScript
;
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;