@privateid/ultra-web-sdk-alpha
Version:
CryptoNets WebAssembly SDK
41 lines • 2.28 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
/* eslint-disable import/prefer-default-export */
import { BaseCameraService } from './BaseCameraService';
import { CameraFaceMode } from '../camera.types';
import { printLogs } from '../../../global/shared.utils';
import { getFilteredVideoDevices, createFirefoxVideoConstraints } from '../camera.utils';
export class FirefoxCameraService extends BaseCameraService {
openCamera(props) {
return __awaiter(this, void 0, void 0, function* () {
const { videoElementId, canvasResolution } = props;
printLogs('Open Camera Firefox!', '');
this.setVideoElementId(videoElementId);
this.setFaceMode(props.requestFaceMode || CameraFaceMode.front);
yield navigator.mediaDevices.getUserMedia({ audio: false, video: true });
try {
const devices = yield getFilteredVideoDevices();
printLogs(`devices: `, devices);
if (devices.length === 0) {
printLogs('NO_CAMERA', '', 'ERROR');
throw new Error('NO_CAMERA');
}
const constraints = createFirefoxVideoConstraints(this.getFaceMode(), canvasResolution);
const stream = yield navigator.mediaDevices.getUserMedia(constraints);
return this.prepareCameraResult(stream, devices, this.getFaceMode(), videoElementId);
}
catch (e) {
printLogs(`Error while getAccessToCamera `, e, 'ERROR');
return null;
}
});
}
}
//# sourceMappingURL=FirefoxCameraService.js.map