expo-av
Version:
Expo universal module for Audio and Video playback
79 lines (78 loc) • 2.55 kB
TypeScript
import * as React from 'react';
import { ImageProps, ViewProps } from 'react-native';
import { AVPlaybackNativeSource, AVPlaybackSource, AVPlaybackStatus, AVPlaybackStatusToSet } from './AV';
export declare type VideoNaturalSize = {
width: number;
height: number;
orientation: 'portrait' | 'landscape';
};
export declare enum ResizeMode {
CONTAIN = "contain",
COVER = "cover",
STRETCH = "stretch"
}
export declare type VideoReadyForDisplayEvent = {
naturalSize: VideoNaturalSize;
status?: AVPlaybackStatus;
};
export declare type VideoFullscreenUpdateEvent = {
fullscreenUpdate: 0 | 1 | 2 | 3;
status?: AVPlaybackStatus;
};
export declare type VideoProps = {
source?: AVPlaybackSource;
posterSource?: ImageProps['source'];
posterStyle?: ImageProps['style'];
onPlaybackStatusUpdate?: (status: AVPlaybackStatus) => void;
onLoadStart?: () => void;
onLoad?: (status: AVPlaybackStatus) => void;
onError?: (error: string) => void;
onReadyForDisplay?: (event: VideoReadyForDisplayEvent) => void;
onFullscreenUpdate?: (event: VideoFullscreenUpdateEvent) => void;
onIOSFullscreenUpdate?: (event: VideoFullscreenUpdateEvent) => void;
useNativeControls?: boolean;
resizeMode?: ResizeMode | 'stretch' | 'cover' | 'contain';
usePoster?: boolean;
status?: AVPlaybackStatusToSet;
progressUpdateIntervalMillis?: number;
positionMillis?: number;
shouldPlay?: boolean;
rate?: number;
shouldCorrectPitch?: boolean;
volume?: number;
isMuted?: boolean;
isLooping?: boolean;
scaleX?: number;
scaleY?: number;
translateX?: number;
translateY?: number;
rotation?: number;
} & ViewProps;
export declare type VideoNativeProps = {
source?: AVPlaybackNativeSource | null;
resizeMode?: unknown;
status?: AVPlaybackStatusToSet;
onLoadStart?: () => void;
onLoad?: (event: {
nativeEvent: AVPlaybackStatus;
}) => void;
onError?: (event: {
nativeEvent: {
error: string;
};
}) => void;
onStatusUpdate?: (event: {
nativeEvent: AVPlaybackStatus;
}) => void;
onReadyForDisplay?: (event: {
nativeEvent: VideoReadyForDisplayEvent;
}) => void;
onFullscreenUpdate?: (event: {
nativeEvent: VideoFullscreenUpdateEvent;
}) => void;
useNativeControls?: boolean;
} & ViewProps;
export declare type VideoState = {
showPoster: boolean;
};
export declare type ExponentVideoComponent = React.ComponentClass<VideoNativeProps>;