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
TypeScript
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;