@orbisk/vue-use-media-recorder
Version:
🪝 Vue Composable around MediaRecorder API
86 lines (85 loc) • 2.84 kB
TypeScript
import type { ConfigurableNavigator } from '@vueuse/core';
import type { MaybeRef } from 'vue';
interface UseMediaRecorderOptions extends ConfigurableNavigator {
/**
* The constraints parameter is a MediaStreamConstraints object specifying the types of media to request, along with any requirements for each type.
*/
constraints?: MaybeRef<MediaStreamConstraints>;
/**
* Options to pass to the MediaRecorder constructor.
*/
mediaRecorderOptions?: MaybeRef<MediaRecorderOptions>;
/**
* Callback when recording starts.
*/
onStart?: (ev: Event) => any;
/**
* Callback when recording pauses.
*/
onPause?: (ev: Event) => any;
/**
* Callback when recording resumes.
*/
onResume?: (ev: Event) => any;
/**
* Callback when recording stops.
*/
onStop?: (ev: Event) => any;
/**
* Callback when an error occurs.
*/
onError?: (ev: Event) => any;
}
export declare function useMediaRecorder(options?: UseMediaRecorderOptions): {
start: (timeslice?: number | undefined) => Promise<void>;
pause: () => void;
resume: () => void;
stop: () => void;
data: import("vue").Ref<{
readonly size: number;
readonly type: string;
arrayBuffer: {
(): Promise<ArrayBuffer>;
(): Promise<ArrayBuffer>;
};
slice: {
(start?: number, end?: number, contentType?: string): Blob;
(start?: number, end?: number, contentType?: string): Blob;
};
stream: {
(): ReadableStream<Uint8Array>;
(): NodeJS.ReadableStream;
};
text: {
(): Promise<string>;
(): Promise<string>;
};
}[], Blob[] | {
readonly size: number;
readonly type: string;
arrayBuffer: {
(): Promise<ArrayBuffer>;
(): Promise<ArrayBuffer>;
};
slice: {
(start?: number, end?: number, contentType?: string): Blob;
(start?: number, end?: number, contentType?: string): Blob;
};
stream: {
(): ReadableStream<Uint8Array>;
(): NodeJS.ReadableStream;
};
text: {
(): Promise<string>;
(): Promise<string>;
};
}[]>;
stream: import("vue").ShallowRef<MediaStream | undefined, MediaStream | undefined>;
state: import("@vueuse/shared").ComputedRefWithControl<RecordingState | undefined>;
isSupported: import("vue").ComputedRef<boolean>;
isMimeTypeSupported: import("vue").ComputedRef<boolean>;
mimeType: import("vue").ComputedRef<string | undefined>;
mediaRecorder: import("vue").ComputedRef<MediaRecorder | undefined>;
};
export type UseMediaRecorderReturn = ReturnType<typeof useMediaRecorder>;
export {};