UNPKG

expo-av

Version:

Expo universal module for Audio and Video playback

57 lines (56 loc) 3.06 kB
import { PermissionResponse, PermissionStatus, PermissionHookOptions, Subscription } from 'expo-modules-core'; import { AVPlaybackStatus, AVPlaybackStatusToSet } from '../AV'; import { RecordingOptions, RecordingStatus } from './Recording.types'; import { Sound } from './Sound'; export declare function getPermissionsAsync(): Promise<PermissionResponse>; export declare function requestPermissionsAsync(): Promise<PermissionResponse>; /** * Check or request permissions to record audio. * This uses both `requestPermissionAsync` and `getPermissionsAsync` to interact with the permissions. * * @example * ```ts * const [status, requestPermission] = Audio.usePermissions(); * ``` */ export declare const usePermissions: (options?: PermissionHookOptions<object> | undefined) => [PermissionResponse | null, () => Promise<PermissionResponse>, () => Promise<PermissionResponse>]; export declare class Recording { _subscription: Subscription | null; _canRecord: boolean; _isDoneRecording: boolean; _finalDurationMillis: number; _uri: string | null; _onRecordingStatusUpdate: ((status: RecordingStatus) => void) | null; _progressUpdateTimeoutVariable: number | null; _progressUpdateIntervalMillis: number; _options: RecordingOptions | null; _cleanupForUnloadedRecorder: (finalStatus?: RecordingStatus | undefined) => Promise<RecordingStatus>; _pollingLoop: () => Promise<void>; _disablePolling(): void; _enablePollingIfNecessaryAndPossible(): void; _callOnRecordingStatusUpdateForNewStatus(status: RecordingStatus): void; _performOperationAndHandleStatusAsync(operation: () => Promise<RecordingStatus>): Promise<RecordingStatus>; static createAsync: (options?: RecordingOptions, onRecordingStatusUpdate?: ((status: RecordingStatus) => void) | null, progressUpdateIntervalMillis?: number | null) => Promise<{ recording: Recording; status: RecordingStatus; }>; getStatusAsync: () => Promise<RecordingStatus>; setOnRecordingStatusUpdate(onRecordingStatusUpdate: ((status: RecordingStatus) => void) | null): void; setProgressUpdateInterval(progressUpdateIntervalMillis: number): void; prepareToRecordAsync(options?: RecordingOptions): Promise<RecordingStatus>; startAsync(): Promise<RecordingStatus>; pauseAsync(): Promise<RecordingStatus>; stopAndUnloadAsync(): Promise<RecordingStatus>; getURI(): string | null; /** @deprecated Use `createNewLoadedSoundAsync()` instead */ createNewLoadedSound(initialStatus?: AVPlaybackStatusToSet, onPlaybackStatusUpdate?: ((status: AVPlaybackStatus) => void) | null): Promise<{ sound: Sound; status: AVPlaybackStatus; }>; createNewLoadedSoundAsync(initialStatus?: AVPlaybackStatusToSet, onPlaybackStatusUpdate?: ((status: AVPlaybackStatus) => void) | null): Promise<{ sound: Sound; status: AVPlaybackStatus; }>; } export * from './RecordingConstants'; export { PermissionResponse, PermissionStatus, PermissionHookOptions, RecordingOptions, RecordingStatus, };