@privateid/ultra-web-sdk-alpha
Version:
CryptoNets WebAssembly SDK
40 lines (39 loc) • 2.08 kB
TypeScript
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;
}