UNPKG

@pineappleaf/react-media-recorder

Version:

A React component based on MediaRecorder() API to record audio/video streams

55 lines (54 loc) 2.4 kB
/// <reference types="dom-mediacapture-record" /> import { ReactElement } from "react"; export declare enum MediaPermissions { Granted = "granted", Denied = "denied", Prompt = "prompt" } export declare function isSupported(): boolean; export declare function useQueryMediaPermissions(): () => Promise<MediaPermissions>; export declare type ReactMediaRecorderRenderProps = { error: string; muteAudio: () => void; unMuteAudio: () => void; startRecording: () => void; pauseRecording: () => void; resumeRecording: () => void; stopRecording: () => void; mediaBlobUrl: null | string; status: StatusMessages; isAudioMuted: boolean; previewStream: MediaStream | null; clearBlobUrl: () => void; stopMediaStream: () => void; startMediaStream: () => Promise<void>; mediaPermissions: MediaPermissions; }; export declare type ReactMediaRecorderHookProps = { audio?: boolean | MediaTrackConstraints; video?: boolean | MediaTrackConstraints; screen?: boolean; onStop?: (blobUrl: string, blob: Blob) => void; onStart?: () => void; blobPropertyBag?: BlobPropertyBag; mediaRecorderOptions?: MediaRecorderOptions | null; customMediaStream?: MediaStream | null; stopStreamsOnStop?: boolean; recorderTimeslice?: number; }; export declare type ReactMediaRecorderProps = ReactMediaRecorderHookProps & { render: (props: ReactMediaRecorderRenderProps) => ReactElement; }; export declare type StatusMessages = "media_aborted" | "permission_denied" | "no_specified_media_found" | "media_in_use" | "invalid_media_constraints" | "no_constraints" | "recorder_error" | "idle" | "acquiring_media" | "delayed_start" | "recording" | "stopping" | "stopped" | "requesting_media"; export declare enum RecorderErrors { AbortError = "media_aborted", NotAllowedError = "permission_denied", NotFoundError = "no_specified_media_found", NotReadableError = "media_in_use", OverconstrainedError = "invalid_media_constraints", TypeError = "no_constraints", NONE = "", NO_RECORDER = "recorder_error", UnsupportedBrowserError = "unsupported_browser" } export declare function useReactMediaRecorder({ audio, video, onStop, onStart, blobPropertyBag, screen, mediaRecorderOptions, customMediaStream, stopStreamsOnStop, recorderTimeslice, }: ReactMediaRecorderHookProps): ReactMediaRecorderRenderProps;