UNPKG

expo-av

Version:

Expo universal module for Audio and Video playback

179 lines (178 loc) 13.5 kB
import PropTypes from 'prop-types'; import * as React from 'react'; import { Playback, AVPlaybackSource, AVPlaybackStatus, AVPlaybackStatusToSet, AVPlaybackNativeSource } from './AV'; import { ExponentVideoComponent, VideoFullscreenUpdateEvent, VideoNativeProps, VideoNaturalSize, VideoProps, VideoReadyForDisplayEvent, ResizeMode, VideoState } from './Video.types'; export { ExponentVideoComponent, VideoFullscreenUpdateEvent, VideoNativeProps, VideoNaturalSize, VideoProps, VideoReadyForDisplayEvent, ResizeMode, VideoState, AVPlaybackStatus, AVPlaybackStatusToSet, AVPlaybackNativeSource, }; export declare const FULLSCREEN_UPDATE_PLAYER_WILL_PRESENT = 0; export declare const FULLSCREEN_UPDATE_PLAYER_DID_PRESENT = 1; export declare const FULLSCREEN_UPDATE_PLAYER_WILL_DISMISS = 2; export declare const FULLSCREEN_UPDATE_PLAYER_DID_DISMISS = 3; export declare const IOS_FULLSCREEN_UPDATE_PLAYER_WILL_PRESENT = 0; export declare const IOS_FULLSCREEN_UPDATE_PLAYER_DID_PRESENT = 1; export declare const IOS_FULLSCREEN_UPDATE_PLAYER_WILL_DISMISS = 2; export declare const IOS_FULLSCREEN_UPDATE_PLAYER_DID_DISMISS = 3; export default class Video extends React.Component<VideoProps, VideoState> implements Playback { static RESIZE_MODE_CONTAIN: ResizeMode; static RESIZE_MODE_COVER: ResizeMode; static RESIZE_MODE_STRETCH: ResizeMode; static IOS_FULLSCREEN_UPDATE_PLAYER_WILL_PRESENT: number; static IOS_FULLSCREEN_UPDATE_PLAYER_DID_PRESENT: number; static IOS_FULLSCREEN_UPDATE_PLAYER_WILL_DISMISS: number; static IOS_FULLSCREEN_UPDATE_PLAYER_DID_DISMISS: number; static FULLSCREEN_UPDATE_PLAYER_WILL_PRESENT: number; static FULLSCREEN_UPDATE_PLAYER_DID_PRESENT: number; static FULLSCREEN_UPDATE_PLAYER_WILL_DISMISS: number; static FULLSCREEN_UPDATE_PLAYER_DID_DISMISS: number; static propTypes: { hitSlop?: PropTypes.Validator<import("react-native").Insets | undefined> | undefined; onLayout?: PropTypes.Validator<((event: import("react-native").LayoutChangeEvent) => void) | undefined> | undefined; pointerEvents?: PropTypes.Validator<"none" | "box-none" | "box-only" | "auto" | undefined> | undefined; removeClippedSubviews?: PropTypes.Validator<boolean | undefined> | undefined; style?: PropTypes.Validator<import("react-native").StyleProp<import("react-native").ViewStyle>> | undefined; testID?: PropTypes.Validator<string | undefined> | undefined; nativeID?: PropTypes.Validator<string | undefined> | undefined; collapsable?: PropTypes.Validator<boolean | undefined> | undefined; needsOffscreenAlphaCompositing?: PropTypes.Validator<boolean | undefined> | undefined; renderToHardwareTextureAndroid?: PropTypes.Validator<boolean | undefined> | undefined; shouldRasterizeIOS?: PropTypes.Validator<boolean | undefined> | undefined; isTVSelectable?: PropTypes.Validator<boolean | undefined> | undefined; hasTVPreferredFocus?: PropTypes.Validator<boolean | undefined> | undefined; tvParallaxProperties?: PropTypes.Validator<import("react-native").TVParallaxProperties | undefined> | undefined; tvParallaxShiftDistanceX?: PropTypes.Validator<number | undefined> | undefined; tvParallaxShiftDistanceY?: PropTypes.Validator<number | undefined> | undefined; tvParallaxTiltAngle?: PropTypes.Validator<number | undefined> | undefined; tvParallaxMagnification?: PropTypes.Validator<number | undefined> | undefined; onStartShouldSetResponder?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined; onMoveShouldSetResponder?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined; onResponderEnd?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onResponderGrant?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onResponderReject?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onResponderMove?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onResponderRelease?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onResponderStart?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onResponderTerminationRequest?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined; onResponderTerminate?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onStartShouldSetResponderCapture?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined; onMoveShouldSetResponderCapture?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined; onTouchStart?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onTouchMove?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onTouchEnd?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onTouchCancel?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; onTouchEndCapture?: PropTypes.Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined; accessible?: PropTypes.Validator<boolean | undefined> | undefined; accessibilityActions?: PropTypes.Validator<readonly Readonly<{ name: import("react-native").AccessibilityActionName; label?: string | undefined; }>[] | undefined> | undefined; accessibilityLabel?: PropTypes.Validator<string | undefined> | undefined; accessibilityRole?: PropTypes.Validator<"none" | "button" | "header" | "link" | "menu" | "menuitem" | "summary" | "image" | "switch" | "text" | "search" | "keyboardkey" | "adjustable" | "imagebutton" | "alert" | "checkbox" | "combobox" | "menubar" | "progressbar" | "radio" | "radiogroup" | "scrollbar" | "spinbutton" | "tab" | "tablist" | "timer" | "toolbar" | undefined> | undefined; accessibilityStates?: PropTypes.Validator<import("react-native").AccessibilityStates[] | undefined> | undefined; accessibilityState?: PropTypes.Validator<import("react-native").AccessibilityState | undefined> | undefined; accessibilityHint?: PropTypes.Validator<string | undefined> | undefined; onAccessibilityAction?: PropTypes.Validator<((event: import("react-native").AccessibilityActionEvent) => void) | undefined> | undefined; accessibilityComponentType?: PropTypes.Validator<"none" | "button" | "radiobutton_checked" | "radiobutton_unchecked" | undefined> | undefined; accessibilityLiveRegion?: PropTypes.Validator<"none" | "polite" | "assertive" | undefined> | undefined; importantForAccessibility?: PropTypes.Validator<"auto" | "yes" | "no" | "no-hide-descendants" | undefined> | undefined; accessibilityElementsHidden?: PropTypes.Validator<boolean | undefined> | undefined; accessibilityTraits?: PropTypes.Validator<"key" | "none" | "button" | "header" | "link" | "summary" | "image" | "text" | "search" | "adjustable" | "disabled" | "selected" | "plays" | "frequentUpdates" | "startsMedia" | "allowsDirectInteraction" | "pageTurn" | import("react-native").AccessibilityTrait[] | undefined> | undefined; accessibilityViewIsModal?: PropTypes.Validator<boolean | undefined> | undefined; onAccessibilityTap?: PropTypes.Validator<(() => void) | undefined> | undefined; onMagicTap?: PropTypes.Validator<(() => void) | undefined> | undefined; accessibilityIgnoresInvertColors?: PropTypes.Validator<boolean | undefined> | undefined; source: PropTypes.Requireable<number | PropTypes.InferProps<{ uri: PropTypes.Requireable<string>; overrideFileExtensionAndroid: PropTypes.Requireable<string>; }>>; posterSource: PropTypes.Requireable<number | PropTypes.InferProps<{ uri: PropTypes.Requireable<string>; }>>; posterStyle: PropTypes.Validator<import("react-native").StyleProp<import("react-native").ViewStyle>> | undefined; onPlaybackStatusUpdate: PropTypes.Requireable<(...args: any[]) => any>; onLoadStart: PropTypes.Requireable<(...args: any[]) => any>; onLoad: PropTypes.Requireable<(...args: any[]) => any>; onError: PropTypes.Requireable<(...args: any[]) => any>; onIOSFullscreenUpdate: PropTypes.Requireable<(...args: any[]) => any>; onFullscreenUpdate: PropTypes.Requireable<(...args: any[]) => any>; onReadyForDisplay: PropTypes.Requireable<(...args: any[]) => any>; useNativeControls: PropTypes.Requireable<boolean>; resizeMode: PropTypes.Requireable<string>; usePoster: PropTypes.Requireable<boolean>; status: PropTypes.Requireable<PropTypes.InferProps<{ progressUpdateIntervalMillis: PropTypes.Requireable<number>; positionMillis: PropTypes.Requireable<number>; shouldPlay: PropTypes.Requireable<boolean>; rate: PropTypes.Requireable<number>; shouldCorrectPitch: PropTypes.Requireable<boolean>; volume: PropTypes.Requireable<number>; isMuted: PropTypes.Requireable<boolean>; isLooping: PropTypes.Requireable<boolean>; }>>; progressUpdateIntervalMillis: PropTypes.Requireable<number>; positionMillis: PropTypes.Requireable<number>; shouldPlay: PropTypes.Requireable<boolean>; rate: PropTypes.Requireable<number>; shouldCorrectPitch: PropTypes.Requireable<boolean>; volume: PropTypes.Requireable<number>; isMuted: PropTypes.Requireable<boolean>; isLooping: PropTypes.Requireable<boolean>; scaleX: PropTypes.Requireable<number>; scaleY: PropTypes.Requireable<number>; translateX: PropTypes.Requireable<number>; translateY: PropTypes.Requireable<number>; rotation: PropTypes.Requireable<number>; }; _nativeRef: React.RefObject<React.Component<VideoNativeProps, any, any> & import("react-native").NativeMethodsMixinStatic>; _onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null; constructor(props: VideoProps); setNativeProps(nativeProps: VideoNativeProps): void; _handleNewStatus: (status: AVPlaybackStatus) => void; _performOperationAndHandleStatusAsync: (operation: (tag: number) => Promise<AVPlaybackStatus>) => Promise<AVPlaybackStatus>; _setFullscreen: (value: boolean) => Promise<AVPlaybackStatus>; presentFullscreenPlayer: () => Promise<AVPlaybackStatus>; presentIOSFullscreenPlayer: () => Promise<AVPlaybackStatus>; presentFullscreenPlayerAsync: () => Promise<AVPlaybackStatus>; dismissFullscreenPlayer: () => Promise<AVPlaybackStatus>; dismissIOSFullscreenPlayer: () => void; getStatusAsync: () => Promise<AVPlaybackStatus>; loadAsync: (source: AVPlaybackSource, initialStatus?: AVPlaybackStatusToSet, downloadFirst?: boolean) => Promise<AVPlaybackStatus>; unloadAsync: () => Promise<AVPlaybackStatus>; setStatusAsync: (status: AVPlaybackStatusToSet) => Promise<AVPlaybackStatus>; replayAsync: (status?: AVPlaybackStatusToSet) => Promise<AVPlaybackStatus>; setOnPlaybackStatusUpdate(onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null): void; 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) => Promise<AVPlaybackStatus>; setVolumeAsync: (volume: number) => Promise<AVPlaybackStatus>; setIsMutedAsync: (isMuted: boolean) => Promise<AVPlaybackStatus>; setIsLoopingAsync: (isLooping: boolean) => Promise<AVPlaybackStatus>; setProgressUpdateIntervalAsync: (progressUpdateIntervalMillis: number) => Promise<AVPlaybackStatus>; _nativeOnPlaybackStatusUpdate: (event: { nativeEvent: AVPlaybackStatus; }) => void; _nativeOnLoadStart: () => void; _nativeOnLoad: (event: { nativeEvent: AVPlaybackStatus; }) => void; _nativeOnError: (event: { nativeEvent: { error: string; }; }) => void; _nativeOnReadyForDisplay: (event: { nativeEvent: VideoReadyForDisplayEvent; }) => void; _nativeOnFullscreenUpdate: (event: { nativeEvent: VideoFullscreenUpdateEvent; }) => void; _renderPoster: () => JSX.Element | null; render(): JSX.Element; }