UNPKG

@privateid/ultra-web-sdk-alpha

Version:
58 lines 3.25 kB
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 { getDefaultCameraDeviceId, printLogs } from '../../../global/shared.utils'; import { getFilteredVideoDevices, getBestResolution, getDefaultDevice, isFaceTimeCamera } from '../camera.utils'; export class DesktopCameraService extends BaseCameraService { openCamera(props) { var _a; return __awaiter(this, void 0, void 0, function* () { const { videoElementId, deviceId, canvasResolution, isDocumentScan } = props; printLogs('[DesktopCameraService] openCamera', props); try { this.setVideoElementId(videoElementId); this.setFaceMode(props.requestFaceMode || CameraFaceMode.front); const devices = yield getFilteredVideoDevices(); printLogs(`Devices: `, devices); if (devices.length === 0) { printLogs('NO_CAMERA', '', 'ERROR'); throw new Error('NO_CAMERA'); } let defaultDeviceId = getDefaultCameraDeviceId(); if (deviceId) { defaultDeviceId = deviceId; } if (!this.getCurrentDeviceId()) { if (deviceId) { this.setCurrentDeviceId(deviceId); } else if (defaultDeviceId) { const isDefaultDeviceAvailable = devices.find((device) => defaultDeviceId === device.deviceId); this.setCurrentDeviceId(isDefaultDeviceAvailable ? defaultDeviceId : devices[0].deviceId); } else { this.setCurrentDeviceId(devices[0].deviceId); } } const deviceCapabilites = getDefaultDevice(devices, this.getCurrentDeviceId()); const isMacFaceTimeCamera = isFaceTimeCamera((_a = deviceCapabilites[0]) === null || _a === void 0 ? void 0 : _a.label, isDocumentScan); const stream = yield getBestResolution(isMacFaceTimeCamera, deviceCapabilites, canvasResolution); return this.prepareCameraResult(stream, devices, this.faceMode, videoElementId); } catch (e) { printLogs(`Error while getAccessToCamera: `, e, 'ERROR'); return null; } }); } } //# sourceMappingURL=DesktopCameraService.js.map