UNPKG

react-native-reanimated-player

Version:

A react-native video player that interacts like Youtube player, built upon Reanimted v2 & react-native-gesture-handle

101 lines (100 loc) 4.13 kB
import React from 'react'; import { ViewStyle } from 'react-native'; import { AwesomeSliderProps, SliderThemeType } from 'react-native-awesome-slider/src/index'; import type { PanGesture } from 'react-native-gesture-handler'; import Animated from 'react-native-reanimated'; import { OnProgressData, OnSeekData, VideoProperties } from 'react-native-video'; export declare const width: number, height: number, scale: number, fontScale: number; export declare type VideoProps = VideoProperties & { showOnStart?: boolean; onEnterFullscreen?: () => void; onExitFullscreen?: () => void; controlTimeout?: number; videoDefaultHeight?: number; headerBarTitle?: string; onTapBack?: () => void; navigation?: any; autoPlay?: boolean; onToggleAutoPlay?: (state: boolean) => void; onTapMore?: () => void; doubleTapInterval?: number; theme?: SliderThemeType; paused: boolean; onPausedChange: (paused: boolean) => void; onTapPause?: (paused: boolean) => void; sliderProps?: Omit<AwesomeSliderProps, 'progress' | 'minimumValue' | 'maximumValue'>; videoHeight: Animated.SharedValue<number>; customAnimationStyle?: Animated.AnimateStyle<ViewStyle>; controlViewOpacityValue?: Animated.SharedValue<number>; onCustomPanGesture?: PanGesture; isFullScreen: Animated.SharedValue<boolean>; disableControl?: boolean; renderBackIcon?: () => JSX.Element; renderFullScreenBackIcon?: () => JSX.Element; renderMore?: () => JSX.Element; renderFullScreen?: () => JSX.Element; onVideoPlayEnd?: () => void; onAutoPlayText?: string; offAutoPlayText?: string; children?: any; onPostProgress?: (data: OnProgressData) => void; onPostSeek?: (data: OnSeekData) => void; }; export declare type VideoPlayerRef = { /** * Check control view to see if it is displayed before playing */ setPlay: () => void; /** * Check control view to see if it is displayed before pause */ setPause: () => void; /** * toggle full screen */ toggleFullSreen: (isFullScreen: boolean) => void; /** * toggle control opatity */ toggleControlViewOpacity: (isShow: boolean) => void; /** * seek to progress */ setSeekTo: (second: number) => void; }; declare const VideoPlayer: React.ForwardRefExoticComponent<VideoProperties & { showOnStart?: boolean | undefined; onEnterFullscreen?: (() => void) | undefined; onExitFullscreen?: (() => void) | undefined; controlTimeout?: number | undefined; videoDefaultHeight?: number | undefined; headerBarTitle?: string | undefined; onTapBack?: (() => void) | undefined; navigation?: any; autoPlay?: boolean | undefined; onToggleAutoPlay?: ((state: boolean) => void) | undefined; onTapMore?: (() => void) | undefined; doubleTapInterval?: number | undefined; theme?: SliderThemeType; paused: boolean; onPausedChange: (paused: boolean) => void; onTapPause?: ((paused: boolean) => void) | undefined; sliderProps?: Omit<AwesomeSliderProps, "progress" | "minimumValue" | "maximumValue"> | undefined; videoHeight: Animated.SharedValue<number>; customAnimationStyle?: Animated.AnimateStyle<ViewStyle> | undefined; controlViewOpacityValue?: Animated.SharedValue<number> | undefined; onCustomPanGesture?: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture | undefined; isFullScreen: Animated.SharedValue<boolean>; disableControl?: boolean | undefined; renderBackIcon?: (() => JSX.Element) | undefined; renderFullScreenBackIcon?: (() => JSX.Element) | undefined; renderMore?: (() => JSX.Element) | undefined; renderFullScreen?: (() => JSX.Element) | undefined; onVideoPlayEnd?: (() => void) | undefined; onAutoPlayText?: string | undefined; offAutoPlayText?: string | undefined; children?: any; onPostProgress?: ((data: OnProgressData) => void) | undefined; onPostSeek?: ((data: OnSeekData) => void) | undefined; } & React.RefAttributes<VideoPlayerRef>>; export default VideoPlayer;