UNPKG

av-kit

Version:

AVFoundation Recorder kit for Node.js

81 lines (77 loc) 2.06 kB
type DeviceType = "display" | "camera" | "microphone"; type RecordingMode = "display" | "webcam"; interface Display { id: string; name: string; } interface Camera { id: string; name: string; } interface Microphone { id: string; name: string; } type DisplayRecordingItem = { type: "display"; display: Display; microphone?: Microphone; shows_cursor?: boolean; }; type WebcamRecordingItem = { type: "webcam"; camera: Camera; microphone?: Microphone; }; type RecordingItem = DisplayRecordingItem | WebcamRecordingItem; interface RecorderOptions { output_directory: string; items: RecordingItem[]; } interface FileResult { path: string; type: RecordingMode; deviceName?: string; dimensions?: { width: number; height: number; }; durationInSeconds?: number; } interface RecordingResult { files: FileResult[]; } declare class Recorder { private options; private outputDirectory; private processManager; private prepared; private recording; private recordingFiles; constructor(options: RecorderOptions); /** * Prepare the recorder */ prepare(): Promise<void>; /** * Start recording */ start(): Promise<void>; /** * Stop recording and return result */ stop(): Promise<RecordingResult>; /** * Start recording a display */ private startDisplayRecording; /** * Start recording a webcam */ private startWebcamRecording; } declare function createOutputDirectory(customPath?: string): string; declare function getDisplays(): Promise<Display[]>; declare function getCameras(): Promise<Camera[]>; declare function getMicrophones(): Promise<Microphone[]>; export { type Camera, type DeviceType, type Display, type DisplayRecordingItem, type FileResult, type Microphone, Recorder, type RecorderOptions, type RecordingItem, type RecordingMode, type RecordingResult, type WebcamRecordingItem, createOutputDirectory, getCameras, getDisplays, getMicrophones };