1.0.0 • Published 4 years ago
@mores8/rn-video-player v1.0.0
rn-video-player
React Native video player & controls UI

Installation
Install the required packages in your React Native project:
npm install react-native-video react-native-linear-gradient react-native-orientation-locker react-native-safe-area-context react-native-vector-icons @react-native-community/slider @sayem314/react-native-keep-awakeFrom React Native 0.60 and higher, linking is automatic. So you don't need to run react-native link.
For iOS, install pods to complete the linking.
npx pod-install iosNote: react-native-vector-icons requires additional steps for installation.
Install rn-video-player
npm install @mores8/rn-video-player
Usage
import VideoPlayer from "@mores8/rn-video-player";
<VideoPlayer
style={{height: ,width: 320}}
url={sampleUrl}
/>Check out the example project for more examples.
Props
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
| url | string, number | Yes | A URL string (or number for local) is required. | |
| autoPlay | bool | No | false | Autoplays the video as soon as it's loaded |
| loop | bool | No | false | Allows the video to continuously loop |
| title | string | No | '' | Adds a title of your video at the top of the player |
| placeholder | string | No | undefined | Adds an image placeholder while it's loading and stopped at the beginning |
| logo | string | No | undefined | Adds an image logo at the top left corner of the video |
| theme | string | No | 'white' | Adds an optional theme colour to the players controls |
| hideFullScreenControl | bool | No | false | This hides the full screen control |
| style | View.style | No | undefined | Apply styles directly to the Video player (ignored in fullscreen mode) |
| resizeMode | string | No | 'contain' | Fills the whole screen at aspect ratio. contain, cover etc |
| rotateToFullScreen | bool | No | false | Tapping the fullscreen button will rotate the screen. Also rotating the screen will automatically switch to fullscreen mode |
| fullScreenOnly | bool | No | false | This will play only in fullscreen mode |
| inlineOnly | bool | No | false | This hides the fullscreen button and only plays the video in inline mode |
| playInBackground | bool | No | false | Audio continues to play when app enters background. |
| playWhenInactive | bool | No | false | iOS Video continues to play when control or notification center are shown. |
| rate | number | No | 1 | Adjusts the speed of the video. 0 = stopped, 1.0 = normal |
| volume | number | No | 1 | Adjusts the volume of the video. 0 = mute, 1.0 = full volume |
| onMorePress | function | No | undefined | Adds an action button at the top right of the player. Use this callback function for your own use. e.g share link |
| onFullScreen | function | No | (value) => {} | Returns the fullscreen status whenever it toggles. Useful for situations like react navigation. |
| lockPortraitOnFsExit | bool | No | false | Keep Portrait mode locked after Exiting from Fullscreen mode |
| lockRatio | number | No | undefined | Force a specific ratio to the Video player. e.g. lockRatio={16 / 9} |
| onLoad | function | No | (data) => {} | Returns data once video is loaded |
| onProgress | function | No | (progress) => {} | Returns progress data |
| onEnd | function | No | () => {} | Invoked when video finishes playing |
| onError | function | No | (error) => {} | Returns an error message argument |
| onPlay | function | No | (playing) => {} | Returns a boolean during playback |
| controlDuration | number | No | 3 | Set the visibility time of the pause button and the progress bar after the video was started |
Example
import * as React from 'react';
import { StyleSheet, View, useWindowDimensions } from 'react-native';
import VideoPlayer from "@mores8/rn-video-player";
const sampleUrl = 'url to video content';
function App() {
const windowWidth = useWindowDimensions().width;
const windowHeight = useWindowDimensions().height;
const containerStyle = {
flex: 1,
height: windowHeight,
width: windowWidth,
};
return (
<View style={containerStyle}>
<VideoPlayer
autoPlay
style={{height: '100%',width: '100%'}}
url={sampleUrl}
hideFullScreenControl={false}
rotateToFullScreen={true}
/>
</View>
);
}Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT
1.0.0
4 years ago