expo-av
Version:
Expo universal module for Audio and Video playback
62 lines (61 loc) • 3.2 kB
TypeScript
import { EventEmitter } from '@unimodules/core';
import { Playback, AVPlaybackSource, AVPlaybackStatus, AVPlaybackStatusToSet } from '../AV';
import { PitchCorrectionQuality } from '../Audio';
declare type AudioInstance = number | HTMLMediaElement | null;
export declare class Sound implements Playback {
_loaded: boolean;
_loading: boolean;
_key: AudioInstance;
_lastStatusUpdate: string | null;
_lastStatusUpdateTime: Date | null;
_subscriptions: {
remove: () => void;
}[];
_eventEmitter: EventEmitter;
_coalesceStatusUpdatesInMillis: number;
_onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null;
static create: (source: AVPlaybackSource, initialStatus?: AVPlaybackStatusToSet, onPlaybackStatusUpdate?: ((status: AVPlaybackStatus) => void) | null, downloadFirst?: boolean) => Promise<{
sound: Sound;
status: AVPlaybackStatus;
}>;
static createAsync: (source: AVPlaybackSource, initialStatus?: AVPlaybackStatusToSet, onPlaybackStatusUpdate?: ((status: AVPlaybackStatus) => void) | null, downloadFirst?: boolean) => Promise<{
sound: Sound;
status: AVPlaybackStatus;
}>;
_callOnPlaybackStatusUpdateForNewStatus(status: AVPlaybackStatus): void;
_performOperationAndHandleStatusAsync(operation: () => Promise<AVPlaybackStatus>): Promise<AVPlaybackStatus>;
_internalStatusUpdateCallback: ({ key, status, }: {
key: AudioInstance;
status: AVPlaybackStatus;
}) => void;
_internalErrorCallback: ({ key, error }: {
key: AudioInstance;
error: string;
}) => void;
_subscribeToNativeEvents(): void;
_clearSubscriptions(): void;
_errorCallback: (error: string) => void;
getStatusAsync: () => Promise<AVPlaybackStatus>;
setOnPlaybackStatusUpdate(onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null): void;
loadAsync(source: AVPlaybackSource, initialStatus?: AVPlaybackStatusToSet, downloadFirst?: boolean): Promise<AVPlaybackStatus>;
unloadAsync(): Promise<AVPlaybackStatus>;
setStatusAsync(status: AVPlaybackStatusToSet): Promise<AVPlaybackStatus>;
replayAsync(status?: AVPlaybackStatusToSet): Promise<AVPlaybackStatus>;
playAsync: () => Promise<AVPlaybackStatus>;
playFromPositionAsync: (positionMillis: number, tolerances?: {
toleranceMillisBefore?: number;
toleranceMillisAfter?: number;
}) => Promise<AVPlaybackStatus>;
pauseAsync: () => Promise<AVPlaybackStatus>;
stopAsync: () => Promise<AVPlaybackStatus>;
setPositionAsync: (positionMillis: number, tolerances?: {
toleranceMillisBefore?: number;
toleranceMillisAfter?: number;
}) => Promise<AVPlaybackStatus>;
setRateAsync: (rate: number, shouldCorrectPitch: boolean, pitchCorrectionQuality?: PitchCorrectionQuality) => Promise<AVPlaybackStatus>;
setVolumeAsync: (volume: number) => Promise<AVPlaybackStatus>;
setIsMutedAsync: (isMuted: boolean) => Promise<AVPlaybackStatus>;
setIsLoopingAsync: (isLooping: boolean) => Promise<AVPlaybackStatus>;
setProgressUpdateIntervalAsync: (progressUpdateIntervalMillis: number) => Promise<AVPlaybackStatus>;
}
export {};