@cbdev/ngx-webcam
Version:
A simple Angular webcam component. Pure & minimal, no Flash-fallback. <a href="https://basst314.github.io/ngx-webcam/?" target="_blank">See the Demo!</a>
22 lines • 3.09 kB
JavaScript
export class WebcamUtil {
static hasVideoInputs() {
const inputs = WebcamUtil.availableVideoInputs;
return !!inputs.find(input => !!input.deviceId);
}
/**
* Lists available videoInput devices
* @returns a list of media device info.
*/
static async getAvailableVideoInputs() {
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
throw new Error('enumerateDevices() not supported.');
}
if (!this.hasVideoInputs()) {
const devices = await navigator.mediaDevices.enumerateDevices();
WebcamUtil.availableVideoInputs = devices.filter((device) => device.kind === 'videoinput');
}
return WebcamUtil.availableVideoInputs;
}
}
WebcamUtil.availableVideoInputs = [];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViY2FtLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvd2ViY2FtL3V0aWwvd2ViY2FtLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFVBQVU7SUFJckIsTUFBTSxDQUFDLGNBQWM7UUFDbkIsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDO1FBQy9DLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QjtRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUMxQixNQUFNLE9BQU8sR0FBRyxNQUFNLFNBQVMsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNoRSxVQUFVLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQXVCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7U0FDN0c7UUFFRCxPQUFPLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztJQUN6QyxDQUFDOztBQXRCYywrQkFBb0IsR0FBc0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFdlYmNhbVV0aWwge1xuXG4gIHByaXZhdGUgc3RhdGljIGF2YWlsYWJsZVZpZGVvSW5wdXRzOiBNZWRpYURldmljZUluZm9bXSA9IFtdO1xuXG4gIHN0YXRpYyBoYXNWaWRlb0lucHV0cygpIHtcbiAgICBjb25zdCBpbnB1dHMgPSBXZWJjYW1VdGlsLmF2YWlsYWJsZVZpZGVvSW5wdXRzO1xuICAgIHJldHVybiAhIWlucHV0cy5maW5kKGlucHV0ID0+ICEhaW5wdXQuZGV2aWNlSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RzIGF2YWlsYWJsZSB2aWRlb0lucHV0IGRldmljZXNcbiAgICogQHJldHVybnMgYSBsaXN0IG9mIG1lZGlhIGRldmljZSBpbmZvLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBnZXRBdmFpbGFibGVWaWRlb0lucHV0cygpOiBQcm9taXNlPE1lZGlhRGV2aWNlSW5mb1tdPiB7XG4gICAgaWYgKCFuYXZpZ2F0b3IubWVkaWFEZXZpY2VzIHx8ICFuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZW51bWVyYXRlRGV2aWNlcygpIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmhhc1ZpZGVvSW5wdXRzKCkpIHtcbiAgICAgIGNvbnN0IGRldmljZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKTtcbiAgICAgIFdlYmNhbVV0aWwuYXZhaWxhYmxlVmlkZW9JbnB1dHMgPSBkZXZpY2VzLmZpbHRlcigoZGV2aWNlOiBNZWRpYURldmljZUluZm8pID0+IGRldmljZS5raW5kID09PSAndmlkZW9pbnB1dCcpO1xuICAgIH1cblxuICAgIHJldHVybiBXZWJjYW1VdGlsLmF2YWlsYWJsZVZpZGVvSW5wdXRzO1xuICB9XG59XG4iXX0=