Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mostafa/react-native-fullscreen-video
A full-screen video component on top of react-native-video
https://github.com/mostafa/react-native-fullscreen-video
javascript npm react-native react-native-video
Last synced: 4 months ago
JSON representation
A full-screen video component on top of react-native-video
- Host: GitHub
- URL: https://github.com/mostafa/react-native-fullscreen-video
- Owner: mostafa
- License: mit
- Archived: true
- Created: 2017-04-16T10:58:50.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-03-02T12:36:39.000Z (almost 7 years ago)
- Last Synced: 2024-09-18T08:20:41.438Z (4 months ago)
- Topics: javascript, npm, react-native, react-native-video
- Language: JavaScript
- Homepage:
- Size: 658 KB
- Stars: 64
- Watchers: 6
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-react-native - react-native-fullscreen-video ★39 - A full-screen video component on top of react-native-video (Components / Media)
- awesome-react-native - react-native-fullscreen-video ★39 - A full-screen video component on top of react-native-video (Components / Media)
- awesome-react-native - react-native-fullscreen-video ★39 - A full-screen video component on top of react-native-video (Components / Media)
- awesome-react-native - react-native-fullscreen-video ★39 - A full-screen video component on top of react-native-video (Components / Media)
README
# ![](https://raw.githubusercontent.com/mostafa/react-native-fullscreen-video/master/assets/RNFSV-logo.png) react-native-fullscreen-video
A full-screen video component on top of [react-native-video](https://github.com/react-native-community/react-native-video/)
[![npm version](https://badge.fury.io/js/react-native-fullscreen-video.svg)](https://badge.fury.io/js/react-native-fullscreen-video)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmostafa%2Freact-native-fullscreen-video.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fmostafa%2Freact-native-fullscreen-video?ref=badge_shield)[![npm](https://img.shields.io/npm/dt/react-native-fullscreen-video.svg)](https://www.npmjs.com/package/react-native-fullscreen-video)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)One of the main issues of react-native-video is making video full-screen on Android. To solve this issue, I've made this package that acts as a full-screen video component.
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmostafa%2Freact-native-fullscreen-video.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fmostafa%2Freact-native-fullscreen-video?ref=badge_large)
## Demo
![](https://raw.githubusercontent.com/mostafa/react-native-fullscreen-video/master/assets/demo.gif)## Installation
To install react-native-fullscreen-video, you can use install from git or use a javascript package manager (e.g. npm or yarn).+ To install from git (master branch):
~~~~
$ npm install git+https://github.com/mostafa/react-native-fullscreen-video.git
~~~~
+ To install using a javascript package manager, simply run this command (in this case we've used npm):
~~~~
$ npm install --save react-native-fullscreen-video
~~~~## Examples
Two example apps are created to demonstrate how to use this package.[First one](https://github.com/mostafa/react-native-fullscreen-video/tree/master/examples/simple-example) is a simple app that uses no special setup for navigation/routing and state management.
In the [second example](https://github.com/mostafa/react-native-fullscreen-video/tree/master/examples/flux-example), [react-native-router-flux](https://github.com/aksonov/react-native-router-flux) is used to make two scenes and switch between them using the provided routing functions (Actions).
## Usage with no-setup
Simply define a view with flex set to 1 containing `FullScreenVideo` component:~~~
import React, { Component } from 'react';
import { View } from 'react-native';
import FullscreenVideo from 'react-native-fullscreen-video';export default class App extends Component<{}> {
render() {
return (
"}} />
);
}
}
~~~## Usage with [react-native-router-flux](https://github.com/aksonov/react-native-router-flux)
Although not mandatory, you can use [react-native-router-flux](https://github.com/aksonov/react-native-router-flux) to define a scene containing this component and then pass the necessary arguments, so that the component plays the video. The example app looks like this:~~~~
import React, { Component } from 'react';
import { AppRegistry } from 'react-native';
import { Scene, Router } from 'react-native-router-flux';
import FullScreenVideo from 'react-native-fullscreen-video';
import MainView from './app/mainview';export default class example extends Component {
render() {
return (
);
}
}AppRegistry.registerComponent('example', () => example);
~~~~~~~~
import { Actions } from 'react-native-router-flux';
...
{ Actions.fullscreenVideo({src: ""}) }} />
...
~~~~By tapping on the `TouchableOpacity` component (or your own desired component), the full-screen video component would slide in and play the video in full-screen.
## Limitation(s)
1. `FIXED` Your app should be locked in [portrait orientation](http://stackoverflow.com/a/34086828/6999563), for this component to work. Your app no longer needs to be locked in portrait orientation.
2. `FIXED` I haven't tested it with any other routing/navigation package, other than react-native-router-flux. No special routing/navigation is needed, the component works independently.
3. Not all properties are supported right now for the internal video component.
4. It doesn't contain any player controls.## Contribution
Contribution is always welcome!## License
[MIT](https://github.com/mostafa/react-native-fullscreen-video/blob/master/LICENSE)