UNPKG

@privateid/ultra-web-sdk-alpha

Version:
40 lines (39 loc) 2.08 kB
import { CameraFaceMode, CameraOpenResult, OpenCameraProps, SwitchCameraResult } from '../camera.types'; import { Camera } from '../camera.domain'; export declare abstract class BaseCameraService implements Camera { /** Current video element ID being used for camera stream */ protected videoElementId: string | null; /** Selected camera device ID */ protected currentDeviceId: string | null; /** Current camera facing mode (front/back) */ protected faceMode: CameraFaceMode; /** Active media stream from the camera */ protected mediaStream: MediaStream | null; /** List of available media devices (cameras) */ protected mediaDevices: MediaDeviceInfo[] | null; /** Observer to monitor unauthorized video source changes */ protected videoMutationObserver: MutationObserver | null; abstract openCamera(props: OpenCameraProps): Promise<CameraOpenResult>; protected prepareCameraResult(stream: MediaStream, devices: MediaDeviceInfo[], faceMode: CameraFaceMode | null, videoElementId: string): Promise<CameraOpenResult>; closeCamera(element?: string): Promise<void>; switchCamera(selectedCamera: CameraFaceMode | null, deviceId: string, canvasResolution?: { width: number; height: number; } | null): Promise<SwitchCameraResult | null>; isActive(): boolean; setVideoElementId(videoElementId: string): void; getVideoElementId(): string | null; getVideoElementDOM(): HTMLVideoElement | null; protected setFaceMode(faceMode: CameraFaceMode): void; getFaceMode(): CameraFaceMode; protected setMediaStream(mediaStream: MediaStream | null): void; getMediaStream(): MediaStream | null; protected closeMediaStream(): void; private getMediaStreamTrack; protected setMediaDevices(devices: MediaDeviceInfo[] | null): void; getMediaDevices(): MediaDeviceInfo[] | null; protected setCurrentDeviceId(deviceId: string): void; getCurrentDeviceId(): string; getVideoMutationObserver(): MutationObserver; protected closeVideoMutationObserver(): void; }