ngx-webcam2
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>
37 lines • 3.88 kB
JavaScript
import { __awaiter, __generator } from "tslib";
var WebcamUtil = /** @class */ (function () {
function WebcamUtil() {
}
WebcamUtil.hasVideoInputs = function () {
var inputs = WebcamUtil.availableVideoInputs;
return !!inputs.find(function (input) { return !!input.deviceId; });
};
/**
* Lists available videoInput devices
* @returns a list of media device info.
*/
WebcamUtil.getAvailableVideoInputs = function () {
return __awaiter(this, void 0, void 0, function () {
var devices;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
throw new Error('enumerateDevices() not supported.');
}
if (!!this.hasVideoInputs()) return [3 /*break*/, 2];
return [4 /*yield*/, navigator.mediaDevices.enumerateDevices()];
case 1:
devices = _a.sent();
WebcamUtil.availableVideoInputs = devices.filter(function (device) { return device.kind === 'videoinput'; });
_a.label = 2;
case 2: return [2 /*return*/, WebcamUtil.availableVideoInputs];
}
});
});
};
WebcamUtil.availableVideoInputs = [];
return WebcamUtil;
}());
export { WebcamUtil };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViY2FtLnV0aWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtd2ViY2FtLyIsInNvdXJjZXMiOlsic3JjL2FwcC9tb2R1bGVzL3dlYmNhbS91dGlsL3dlYmNhbS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtJQUFBO0lBeUJBLENBQUM7SUFyQlEseUJBQWMsR0FBckI7UUFDRSxJQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUM7UUFDL0MsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFoQixDQUFnQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7T0FHRztJQUNpQixrQ0FBdUIsR0FBM0M7Ozs7Ozt3QkFDRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQzt5QkFDdEQ7NkJBRUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQXRCLHdCQUFzQjt3QkFDUixxQkFBTSxTQUFTLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLEVBQUE7O3dCQUF6RCxPQUFPLEdBQUcsU0FBK0M7d0JBQy9ELFVBQVUsQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQUMsTUFBdUIsSUFBSyxPQUFBLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUE1QixDQUE0QixDQUFDLENBQUM7OzRCQUc5RyxzQkFBTyxVQUFVLENBQUMsb0JBQW9CLEVBQUM7Ozs7S0FDeEM7SUF0QmMsK0JBQW9CLEdBQXNCLEVBQUUsQ0FBQztJQXVCOUQsaUJBQUM7Q0FBQSxBQXpCRCxJQXlCQztTQXpCWSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFdlYmNhbVV0aWwge1xuXG4gIHByaXZhdGUgc3RhdGljIGF2YWlsYWJsZVZpZGVvSW5wdXRzOiBNZWRpYURldmljZUluZm9bXSA9IFtdO1xuXG4gIHN0YXRpYyBoYXNWaWRlb0lucHV0cygpIHtcbiAgICBjb25zdCBpbnB1dHMgPSBXZWJjYW1VdGlsLmF2YWlsYWJsZVZpZGVvSW5wdXRzO1xuICAgIHJldHVybiAhIWlucHV0cy5maW5kKGlucHV0ID0+ICEhaW5wdXQuZGV2aWNlSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RzIGF2YWlsYWJsZSB2aWRlb0lucHV0IGRldmljZXNcbiAgICogQHJldHVybnMgYSBsaXN0IG9mIG1lZGlhIGRldmljZSBpbmZvLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBnZXRBdmFpbGFibGVWaWRlb0lucHV0cygpOiBQcm9taXNlPE1lZGlhRGV2aWNlSW5mb1tdPiB7XG4gICAgaWYgKCFuYXZpZ2F0b3IubWVkaWFEZXZpY2VzIHx8ICFuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZW51bWVyYXRlRGV2aWNlcygpIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmhhc1ZpZGVvSW5wdXRzKCkpIHtcbiAgICAgIGNvbnN0IGRldmljZXMgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKTtcbiAgICAgIFdlYmNhbVV0aWwuYXZhaWxhYmxlVmlkZW9JbnB1dHMgPSBkZXZpY2VzLmZpbHRlcigoZGV2aWNlOiBNZWRpYURldmljZUluZm8pID0+IGRldmljZS5raW5kID09PSAndmlkZW9pbnB1dCcpO1xuICAgIH1cblxuICAgIHJldHVybiBXZWJjYW1VdGlsLmF2YWlsYWJsZVZpZGVvSW5wdXRzO1xuICB9XG59XG4iXX0=