biometry-angular-components
Version:
Angular UI component library for capturing biometric data
61 lines (60 loc) • 2.33 kB
TypeScript
import { EventEmitter, OnInit, OnDestroy, ElementRef, NgZone, ChangeDetectorRef } from '@angular/core';
import { PermissionsService } from '../../services/permissions.service';
import { RecorderService } from '../../services/recorder.service';
import * as i0 from "@angular/core";
type VRState = 'preparation' | 'countdown' | 'recording' | 'processing' | 'result';
export declare class VoiceRecorderComponent implements OnInit, OnDestroy {
private perms;
private recorder;
private ngZone;
private cdr;
rectWidth: number;
rectHeight?: number;
noShadow: boolean;
className?: string;
style?: {
[k: string]: any;
};
capture: EventEmitter<{
file: File;
phrase: string;
}>;
audioRef?: ElementRef<HTMLAudioElement>;
permission: boolean;
isLoading: boolean;
stream?: MediaStream;
state: VRState;
prepTimer: number;
recordTimer: number;
digits: number[];
maskedDigits: any[];
audioLevel: number;
waveformData: number[];
private audioBlob;
audioUrl: string | null;
isConfirming: boolean;
private countdownTimeout?;
private recordInterval?;
private rafId?;
private audioCtx?;
private analyser?;
private sourceNode?;
constructor(perms: PermissionsService, recorder: RecorderService, ngZone: NgZone, cdr: ChangeDetectorRef);
ngOnInit(): Promise<void>;
ngOnDestroy(): void;
requestPermissions(): Promise<void>;
startRecording(): void;
private tickCountdown;
private beginRecording;
private finishRecording;
handleCancel(): Promise<void>;
handleConfirm(): void;
handleDecline(): void;
private setupVisualizer;
private teardownVisualizer;
private clearAllTimers;
getVolumeHeight(v: number): number;
static ɵfac: i0.ɵɵFactoryDeclaration<VoiceRecorderComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<VoiceRecorderComponent, "bio-voice-recorder", never, { "rectWidth": { "alias": "rectWidth"; "required": false; }; "rectHeight": { "alias": "rectHeight"; "required": false; }; "noShadow": { "alias": "noShadow"; "required": false; }; "className": { "alias": "className"; "required": false; }; "style": { "alias": "style"; "required": false; }; }, { "capture": "capture"; }, never, never, true, never>;
}
export {};