Current collected state Current
Observed since 20 Oct, 19:59 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
42-react-native-reanimated-player
A react-native video player that interacts like Youtube player, built upon Reanimted v2 & react-native-gesture-handle
`JSThread` to `JSThread`, `UIThread` to `UIThread`.
Player basic usage | ▶️ Custom usage for example |
![]() | ![]() |
This is the react-native-video version, If you use Expo, please check out expo-reanimated-av-player!
First you have to follow installation instructions of:
If react-native-gesture-handler version >= 2:
yarn add react-native-reanimated-player@2
else use v1:
yarn add react-native-reanimated-player@1
import VideoPlayer from 'react-native-reanimated-player';
import { useSharedValue } from 'react-native-reanimated';
export const Example = () => {
const videoHeight = useSharedValue(0);
const isFullScreen = useSharedValue(false);
const { paused, setPaused } = useContext(false);
return (
<VideoPlayer
source={uri}
headerTitle={'Title in full screen mode'}
onTapBack={() => {
Alert.alert('onTapBack');
}}
onTapMore={() => {
Alert.alert('onTapMore');
}}
onPausedChange={state => {
Alert.alert(`onPausedChange: ${state}`);
setPaused(state);
}}
videoHeight={videoHeight}
paused={paused}
isFullScreen={isFullScreen}
/>
);
};
TypeScript.react-native-reanimated and react-native-gusture-handler.expo-av supportThe <VideoPlayer/> component has the following configuration properties:
| Name | Type | Description | Required | Default Value |
| theme | object | The slider theme color | ❌ | { // Color to fill the progress in the seekbar minimumTrackTintColor: string, // Color to fill the background in the seekbar maximumTrackTintColor: string, // Color to fill the cache in the seekbar cacheTrackTintColor: string, // Color to fill the bubble backgroundColor disableMinTrackTintColor: string, // Disabled color to fill the progress in the seekbar bubbleBackgroundColor: string } |
| showOnStart | boolean | control view init show | ❌ | false |
| onEnterFullscreen | function | on enter fullscreen callback | ❌ | undefined |
| onExitFullscreen | function | on exit fullscreen callback | ❌ | undefined |
| controlTimeout | nubmer | How long to hide the control view after showing | ❌ | 2000 |
| videoDefaultHeight | number | video default height | ❌ | screenWidth * (9 / 16) |
| headerBarTitle | string | header bar title on fullscreen mode | ❌ | undefined |
| onTapBack | function | tap header bar Icon-'Back' callback | ❌ | undefined |
| navigation | any | navigation | ❌ | undefined |
| autoPlay | boolean | auto play | ❌ | false |
| onToggleAutoPlay | function | on toggle auto play | ❌ | undefined |
| onTapMore | function | tap headerbar Icon-'More' callback | ❌ | undefined |
| doubleTapInterval | number | double tap interval | ❌ | undefined |
| paused | boolean | video paused | ✅ | undefined |
| onPausedChange | boolean | on change video paused | ❌ | undefined |
| onTapPause | function | on tap video paused | ❌ | undefined |
| sliderProps | object | react-native-awesome-slider props | ❌ | undefined |
| videoHeight | Animated.SharedValue | video height | ✅ | width * (9 / 16); |
| customAnimationStyle | Animated Viewstyle | video height | ❌ | width * (9 / 16); |
| onCustomPanGesture | PanGesture | custom pan gesture | ❌ | width * (9 / 16); |
| isFullScreen | Animated ShareValue | fullScreen status | ✅ | undefined |
| disableControl | boolean | control view status | ❌ | undefined |
| renderBackIcon | JSX | custom back icon | ❌ | undefined |
| renderFullScreenBackIcon | JSX | custom full's fullscreen icon | ❌ | undefined |
| renderMore | JSX | custom more icon | ❌ | undefined |
| renderFullScreen | JSX | custom fullscreen icon | ❌ | undefined |
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
@gorhom/portalEnvironment{
"local_name": "@gorhom/portal",
"alias": false,
"peer_metadata": null
} | ^1.0.12 | runtime |
lodash.padstartEnvironment{
"local_name": "lodash.padstart",
"alias": false,
"peer_metadata": null
} | ^4.6.1 | runtime |
@babel/coreEnvironment{
"local_name": "@babel/core",
"alias": false,
"peer_metadata": null
} | ^7.12.9 | development |
@babel/runtimeEnvironment{
"local_name": "@babel/runtime",
"alias": false,
"peer_metadata": null
} | ^7.12.5 | development |
@react-native-community/eslint-configEnvironment{
"local_name": "@react-native-community/eslint-config",
"alias": false,
"peer_metadata": null
} | ^2.0.0 | development |
@react-navigation/coreEnvironment{
"local_name": "@react-navigation/core",
"alias": false,
"peer_metadata": null
} | * | development |
@release-it/conventional-changelogEnvironment{
"local_name": "@release-it/conventional-changelog",
"alias": false,
"peer_metadata": null
} | ^2.0.0 | development |
@types/jestEnvironment{
"local_name": "@types/jest",
"alias": false,
"peer_metadata": null
} | ^26.0.23 | development |
@types/reactEnvironment{
"local_name": "@types/react",
"alias": false,
"peer_metadata": null
} | 17.0.2 | development |
@types/react-nativeEnvironment{
"local_name": "@types/react-native",
"alias": false,
"peer_metadata": null
} | ^0.66.4 | development |
@types/react-native-videoEnvironment{
"local_name": "@types/react-native-video",
"alias": false,
"peer_metadata": null
} | ^5.0.10 | development |
@types/react-test-rendererEnvironment{
"local_name": "@types/react-test-renderer",
"alias": false,
"peer_metadata": null
} | ^17.0.1 | development |
@typescript-eslint/eslint-pluginEnvironment{
"local_name": "@typescript-eslint/eslint-plugin",
"alias": false,
"peer_metadata": null
} | ^5.7.0 | development |
@typescript-eslint/parserEnvironment{
"local_name": "@typescript-eslint/parser",
"alias": false,
"peer_metadata": null
} | ^5.7.0 | development |
babel-jestEnvironment{
"local_name": "babel-jest",
"alias": false,
"peer_metadata": null
} | ^26.6.3 | development |
eslintEnvironment{
"local_name": "eslint",
"alias": false,
"peer_metadata": null
} | ^7.14.0 | development |
jestEnvironment{
"local_name": "jest",
"alias": false,
"peer_metadata": null
} | ^26.6.3 | development |
lottie-react-nativeEnvironment{
"local_name": "lottie-react-native",
"alias": false,
"peer_metadata": null
} | ^5.0.1 | development |
metro-react-native-babel-presetEnvironment{
"local_name": "metro-react-native-babel-preset",
"alias": false,
"peer_metadata": null
} | ^0.66.2 | development |
react-nativeEnvironment{
"local_name": "react-native",
"alias": false,
"peer_metadata": null
} | 0.66.4 | development |
react-native-awesome-sliderEnvironment{
"local_name": "react-native-awesome-slider",
"alias": false,
"peer_metadata": null
} | ^2.0.4 | development |
react-native-builder-bobEnvironment{
"local_name": "react-native-builder-bob",
"alias": false,
"peer_metadata": null
} | ^0.18.2 | development |
react-native-gesture-handlerEnvironment{
"local_name": "react-native-gesture-handler",
"alias": false,
"peer_metadata": null
} | ^2.3.2 | development |
42-react-native-orientation-lockerEnvironment{
"local_name": "42-react-native-orientation-locker",
"alias": false,
"peer_metadata": null
} | * | development |
react-native-reanimatedEnvironment{
"local_name": "react-native-reanimated",
"alias": false,
"peer_metadata": null
} | 2.1.0 | development |
react-native-safe-area-contextEnvironment{
"local_name": "react-native-safe-area-context",
"alias": false,
"peer_metadata": null
} | ^4.2.2 | development |
react-native-videoEnvironment{
"local_name": "react-native-video",
"alias": false,
"peer_metadata": null
} | ^5.2.0 | development |
react-test-rendererEnvironment{
"local_name": "react-test-renderer",
"alias": false,
"peer_metadata": null
} | 17.0.2 | development |
release-itEnvironment{
"local_name": "release-it",
"alias": false,
"peer_metadata": null
} | * | development |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^4.4.4 | development |
@react-navigation/coreEnvironment{
"local_name": "@react-navigation/core",
"alias": false,
"peer_metadata": null
} | * | peer |
lottie-react-nativeEnvironment{
"local_name": "lottie-react-native",
"alias": false,
"peer_metadata": null
} | >=4.0.0 | peer |
reactEnvironment{
"local_name": "react",
"alias": false,
"peer_metadata": null
} | * | peer |
react-nativeEnvironment{
"local_name": "react-native",
"alias": false,
"peer_metadata": null
} | * | peer |
react-native-awesome-sliderEnvironment{
"local_name": "react-native-awesome-slider",
"alias": false,
"peer_metadata": null
} | >=2.0.0 | peer |
react-native-gesture-handlerEnvironment{
"local_name": "react-native-gesture-handler",
"alias": false,
"peer_metadata": null
} | >=2.0.0 | peer |
42-react-native-orientation-lockerEnvironment{
"local_name": "42-react-native-orientation-locker",
"alias": false,
"peer_metadata": null
} | * | peer |
react-native-reanimatedEnvironment{
"local_name": "react-native-reanimated",
"alias": false,
"peer_metadata": null
} | >=2.0.0 | peer |
react-native-safe-area-contextEnvironment{
"local_name": "react-native-safe-area-context",
"alias": false,
"peer_metadata": null
} | * | peer |
Source distribution
{
"integrity": "sha512-Zkb1imHtYjibx4rw9+Bk/CXpvkNd/XdcfrXBqY0PIQxQ9tT+NBZdYq7MJurM1RW7j491NxXTU5Cc2f/R/vuKcg==",
"shasum": "c399c130d6ef5d32c46c3a69c2ddec39a6636230",
"tarball": "https://registry.npmjs.org/42-react-native-reanimated-player/-/42-react-native-reanimated-player-2.2.1.tgz",
"fileCount": 87,
"unpackedSize": 427521,
"signatures": [
{
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
"sig": "MEUCIQCK4bXpjo9JMhwRd6js1+tZo4MkcwMCl7fZU8ql4i4LzAIgMJEOCuc4lH/KZEN0dWyApNhmhf2B6IgJBC3GK3Xyxwo="
}
],
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfEaWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpysw//ehbU0ZdLZFwd0FiXol7kijCXHqJRkxmsKzOv5qHgR2PhrlYl\r\niMv9Ahfz2KROh0te8vaCllo/1PHDjK6VtDwkjTGEPnKli0HsbDeD+QxitlnL\r\nZZijiN2YGCX7IVvRPe+joTpZsK1XN8o7b90V7kagEgP80V8KPSaXKHQH2vfn\r\noVGIQJN/zEGJ+/r+6sZtWjw7YURLUNFF8LB5L0tq//7SaBk2U5sDZ4n01KZJ\r\narXrKCyBejJtPrpeDwj+UiET2kxHVYzToC7/yj5fVxn5JPWAVudHsuw+uVfU\r\nOUlBIwirpIzph0toCbmsn4cPdouTOgvqAVWGxkpnn0Sm6oQ2RYFPXPxsLA4b\r\nsccyJxcMHOaXKsSrZXXuVcWN7qGjzsPb0qpLo5I1Q0ZPYKXN0Ljn+iLiFVjV\r\nPBQvCnYN0amFwweIGXZVPXvjEhn26s5+AG+duESjJJCmFZqngOqUo1BfrB+7\r\nxQJwCOUDOycFlAeQnqApNG1My/MQunAR8b6XRAn0/YqNeK3iln15cQ0yfqLv\r\nTSToUzgK8Xt4rFjBDcI/yWn9PBN97tYe6RA9u/oUDFrrj8P7Fsk3g9vOFzkn\r\nAURj/2YbsIlHyeL5bBAO3pZl6QvlsFQzZ8bWtMH0DzybvoPZHH8+53vxo8v4\r\nyjGn2rCa27OaqxZsPyfSWiMLap2KEhvJ9Qo=\r\n=7jtf\r\n-----END PGP SIGNATURE-----\r\n"
}Shared repository data · GitHub
Observed since 20 Oct, 19:59 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:8badd68a6de2135e7e3ac321ea266f5704babe6ed7d96fed9202caefb732399f