Go to file
2015-05-11 08:21:16 -07:00
Examples/VideoPlayer Fixed invalid usage of JS-like OR 2015-05-11 08:21:16 -07:00
RCTVideo.xcodeproj Add header search path for standalone build 2015-04-07 10:57:00 -07:00
.gitignore Clarify example project instructions 2015-05-11 08:20:31 -07:00
package.json Respect the pause property at all times 2015-05-11 08:20:42 -07:00
RCTVideo.h add RNVideoEventEnd constant 2015-05-11 08:19:46 -07:00
RCTVideo.m Fixed invalid usage of JS-like OR 2015-05-11 08:21:16 -07:00
RCTVideoManager.h Initial commit 2015-03-30 22:07:55 -07:00
RCTVideoManager.m Respect the pause property at all times 2015-05-11 08:20:42 -07:00
README.md Update README to remove pointless step 2015-05-11 08:20:42 -07:00
Video.android.js Initial commit 2015-03-30 22:07:55 -07:00
Video.ios.js Respect the pause property at all times 2015-05-11 08:20:42 -07:00
VideoResizeMode.js Initial commit 2015-03-30 22:07:55 -07:00
VideoStylePropTypes.js Use the ViewStylePropTypes since they work & inherit from LayoutPropTypes 2015-05-11 08:20:42 -07:00

react-native-video

A

Add it to your project

  1. Run npm install react-native-video --save
  2. Open your project in XCode, right click on Libraries and click Add Files to "Your Project Name" (Screenshot) then (Screenshot) (use the RCTVideo project rather than the one pictured in screenshot).
  3. Add libRTCVideo.a to Build Phases -> Link Binary With Libraries (Screenshot).
  4. Whenever you want to use it within React code now you can: var Video = require('react-native-video');

Example

// Within your render function, assuming you have a file called
// "background.mp4" in your project. You can include multiple videos
// on a single screen if you like.
<Video source={{uri: "background"}} // Can be a URL or a local file.
       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.
       onLoad={this.setDuration}    // Callback when video loads
       onProgress={this.setTime}    // Callback every ~250ms with currentTime
       onEnd={this.onEnd}           // Callback when playback finishes
       style={styles.backgroundVideo} />

// Later on in your styles..
var styles = Stylesheet.create({
  backgroundVideo: {
    position: 'absolute',
    top: 0,
    left: 0,
    bottom: 0,
    right: 0,
  },
});

Example code here, or try out the example VideoPlayer app - clone this repo, cd into it, npm install open the project in XCode and build.

TODOS

  • Add some way to interface with seekToTime
  • Add support for captions
  • Support require('video!...')
  • Add support for playing multiple videos in a sequence (will interfere with current repeat implementation)
  • Callback to get buffering progress for remote videos
  • Bring API closer to HTML5 <Video> reference