2015-03-30 22:07:55 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								## react-native-video
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-05-09 15:37:33 -03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								A `<Video>`  component for react-native, as seen in
							 
						 
					
						
							
								
									
										
										
										
											2015-06-25 12:47:57 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[react-native-login ](https://github.com/brentvatne/react-native-login )!
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 22:51:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-24 19:40:04 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Requires react-native >= 0.19.0
							 
						 
					
						
							
								
									
										
										
										
											2015-06-10 10:28:51 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 22:51:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Add it to your project
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Run `npm i -S react-native-video` 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 02:37:15 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#### iOS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-15 23:53:47 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Run `react-native link`  to link the react-native-video library.
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 22:51:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-04-28 21:40:46 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								If you would like to allow other apps to play music over your video component, add:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								**AppDelegate.m**
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```objective-c
							 
						 
					
						
							
								
									
										
										
										
											2016-04-28 21:40:46 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								#import <AVFoundation/AVFoundation.h>  // import
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary * )launchOptions
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  ...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];  // allow
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  ...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 02:37:15 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								#### Android
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-15 23:53:47 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Run `react-native link`  to link the react-native-video library.
							 
						 
					
						
							
								
									
										
										
										
											2016-05-03 18:23:10 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-15 23:53:47 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Or if you have trouble, make the following additions to the given files manually:
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 02:37:15 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								**android/settings.gradle**
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 02:37:15 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2016-05-03 18:23:10 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								include ':react-native-video'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android')
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 02:37:15 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								**android/app/build.gradle**
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 02:37:15 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								dependencies {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   ...
							 
						 
					
						
							
								
									
										
										
										
											2016-05-03 18:23:10 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								   compile project(':react-native-video')
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 02:37:15 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								**MainActivity.java**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								On top, where imports are:
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 02:37:15 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```java
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import com.brentvatne.react.ReactVideoPackage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Under `.addPackage(new MainReactPackage())` :
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 02:37:15 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```java
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.addPackage(new ReactVideoPackage())
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 22:51:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Note: In react-native >= 0.29.0 you have to edit `MainApplication.java`
 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-28 10:14:18 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								**MainApplication.java** (react-native >= 0.29.0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								On top, where imports are:
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-28 10:14:18 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```java
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import com.brentvatne.react.ReactVideoPackage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Under `.addPackage(new MainReactPackage())` :
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-28 10:14:18 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```java
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.addPackage(new ReactVideoPackage())
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-09 11:31:42 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								#### Windows
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Make the following additions to the given files manually:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								**windows/myapp.sln**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Add the `ReactNativeVideo`  project to your solution.
							 
						 
					
						
							
								
									
										
										
										
											2016-11-09 16:05:45 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-09 11:31:42 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								1.  Open the solution in Visual Studio 2015
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								2.  Right-click Solution icon in Solution Explorer > Add > Existing Project...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								3.  Select `node_modules\react-native-video\windows\ReactNativeVideo\ReactNativeVideo.csproj` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								**windows/myapp/myapp.csproj**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-10 12:27:26 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Add a reference to `ReactNativeVideo`  to your main application project. From Visual Studio 2015:
							 
						 
					
						
							
								
									
										
										
										
											2016-11-09 16:05:45 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-09 11:31:42 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								1.  Right-click main application project > Add > Reference...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								2.  Check `ReactNativeVideo`  from Solution Projects.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								**MainPage.cs**
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Add the `ReactVideoPackage`  class to your list of exported packages.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```cs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								using ReactNative;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								using ReactNative.Modules.Core;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								using ReactNative.Shell;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								using ReactNativeVideo; // < --  Add  this 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								using System.Collections.Generic;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        public override List< IReactPackage >  Packages
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            get
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                return new List< IReactPackage > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    new MainReactPackage(),
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    new ReactVideoPackage(), // < --  Add  this 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                };
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-12 18:11:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Usage
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 22:51:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```javascript
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Within your render function, assuming you have a file called
							 
						 
					
						
							
								
									
										
										
										
											2015-04-04 17:57:35 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// "background.mp4" in your project. You can include multiple videos
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// on a single screen if you like.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-01 11:23:50 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< Video  source = {{uri:  " background " } }    / /  Can  be  a  URL  or  a  local  file . 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-03 16:43:09 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       ref={(ref) => {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								         this.player = ref
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       }}                             // Store reference
							 
						 
					
						
							
								
									
										
										
										
											2016-10-01 11:23:50 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       rate={1.0}                     // 0 is paused, 1 is normal.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       volume={1.0}                   // 0 is muted, 1 is normal.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       muted={false}                  // Mutes the audio entirely.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       paused={false}                 // Pauses playback entirely.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       resizeMode="cover"             // Fill the whole screen at aspect ratio.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       repeat={true}                  // Repeat forever.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       playInBackground={false}       // Audio continues to play when app entering background.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       playWhenInactive={false}       // [iOS] Video continues to play when control or notification center are shown.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       progressUpdateInterval={250.0} // [iOS] Interval to fire onProgress (default to ~250ms)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       onLoadStart={this.loadStart}   // Callback when video starts to load
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       onLoad={this.setDuration}      // Callback when video loads
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       onProgress={this.setTime}      // Callback every ~250ms with currentTime
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       onEnd={this.onEnd}             // Callback when playback finishes
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       onError={this.videoError}      // Callback when video cannot be loaded
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       style={styles.backgroundVideo} />
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 22:51:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-03 16:43:09 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Later to trigger fullscreen
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								this.player.presentFullscreenPlayer()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// To set video position in seconds (seek)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								this.player.seek(0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 22:51:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Later on in your styles..
							 
						 
					
						
							
								
									
										
										
										
											2016-02-28 11:50:45 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								var styles = StyleSheet.create({
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 22:51:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  backgroundVideo: {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    position: 'absolute',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    top: 0,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    left: 0,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bottom: 0,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    right: 0,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								});
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 22:57:04 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2015-12-08 02:37:15 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-09-14 12:28:06 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								## Android Expansion File Usage
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```javascript
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Within your render function, assuming you have a file called
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// "background.mp4" in your expansion file. Just add your main and (if applicable) patch version
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< Video  source = {{uri:  " background " ,  mainVer:  1 ,  patchVer:  0 } }  / /  Looks  for  . mp4  file  ( background . mp4 )  in  the  given  expansion  version . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       rate={1.0}                   // 0 is paused, 1 is normal.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       volume={1.0}                 // 0 is muted, 1 is normal.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       muted={false}                // Mutes the audio entirely.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       paused={false}               // Pauses playback entirely.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       resizeMode="cover"           // Fill the whole screen at aspect ratio.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       repeat={true}                // Repeat forever.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       onLoadStart={this.loadStart} // Callback when video starts to load
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       onLoad={this.setDuration}    // Callback when video loads
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       onProgress={this.setTime}    // Callback every ~250ms with currentTime
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       onEnd={this.onEnd}           // Callback when playback finishes
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       onError={this.videoError}    // Callback when video cannot be loaded
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       style={styles.backgroundVideo} />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Later on in your styles..
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								var styles = Stylesheet.create({
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  backgroundVideo: {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    position: 'absolute',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    top: 0,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    left: 0,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bottom: 0,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    right: 0,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								});
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Load files with the RN Asset System
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-09-10 10:48:10 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								The asset system [introduced in RN `0.14` ](http://www.reactnative.com/react-native-v0-14-0-released/ ) allows loading image resources shared across iOS and Android without touching native code. As of RN `0.31`  [the same is true ](https://github.com/facebook/react-native/commit/91ff6868a554c4930fd5fda6ba8044dbd56c8374 ) of mp4 video assets for Android. As of [RN `0.33` ](https://github.com/facebook/react-native/releases/tag/v0.33.0 ) iOS is also supported. Requires `react-native-video@0.9.0` .
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< Video 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  repeat
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  resizeMode='cover'
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 01:29:36 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  source={require('../assets/video/turntable.mp4')}
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  style={styles.backgroundVideo}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-06-02 08:29:16 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Play in background on iOS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-30 08:18:19 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								To enable audio to play in background on iOS the audio session needs to be set to `AVAudioSessionCategoryPlayback` . See [Apple documentation][3] for additional details. (NOTE: there is now a ticket to [expose this as a prop ]( https://github.com/react-native-community/react-native-video/issues/310 ) )
							 
						 
					
						
							
								
									
										
										
										
											2016-06-02 08:29:16 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-25 19:24:47 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Static Methods
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								`seek(seconds)` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Seeks the video to the specified time (in seconds). Access using a ref to the component
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 22:51:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-03 16:43:09 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								`presentFullscreenPlayer()` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Toggles a fullscreen player. Access using a ref to the component.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-12 18:11:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Examples
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								-  See an [Example integration][1] in `react-native-login`  *note that this example uses an older version of this library, before we used `export default` -- if you use `require` you will need to do `require('react-native-video').default` as per instructions above.* 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-12 18:11:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								-  Try the included [VideoPlayer example][2] yourself:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   ```sh
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   git clone git@github .com:brentvatne/react-native-video.git
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   cd react-native-video/Examples/VideoPlayer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   npm install
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   open VideoPlayer.xcodeproj
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   Then `Cmd+R`  to start the React Packager, build and run the project in the simulator.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:34:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								-  [Lumpen Radio ](https://github.com/jhabdas/lumpen-radio ) contains another example integration using local files and full screen background video.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-30 23:06:54 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## TODOS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-05 10:26:40 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								- [ ]  Add support for captions
							 
						 
					
						
							
								
									
										
										
										
											2015-04-05 10:25:04 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								- [ ]  Add support for playing multiple videos in a sequence (will interfere with current `repeat`  implementation)
							 
						 
					
						
							
								
									
										
										
										
											2015-04-10 09:26:49 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								- [ ]  Callback to get buffering progress for remote videos
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 15:41:35 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								- [ ]  Bring API closer to HTML5 `<Video>`  [reference ](http://devdocs.io/html/element/video )
							 
						 
					
						
							
								
									
										
										
										
											2015-05-12 18:11:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[1]: https://github.com/brentvatne/react-native-login/blob/56c47a5d1e23781e86e19b27e10427fd6391f666/App/Screens/UserInfoScreen.js#L32 -L35
							 
						 
					
						
							
								
									
										
										
										
											2016-10-07 10:34:20 +13:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[2]: https://github.com/react-native-community/react-native-video/tree/master/example
							 
						 
					
						
							
								
									
										
										
										
											2016-06-02 08:29:16 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[3]: https://developer.apple.com/library/ios/qa/qa1668/_index.html
							 
						 
					
						
							
								
									
										
										
										
											2015-05-17 11:40:23 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								**MIT Licensed**