A <Video> component for react-native-web, as seen in
WARNING: In current development
Requires react-native >= 0.40.0, for RN support of 0.19.0 - 0.39.0 please use a pre 1.0 version.
Run npm i -S react-native-web-video
Alias the package in your webpack config:
resolve: {
alias: {
'react-native': 'react-native-web',
...
'Video': 'react-native-web-video/src/Video',
}
}
// 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.importVideofrom'Video';<Videosource={{uri: "background"}}// Can be a URL or a local file.ref={(ref)=>{this.player=ref}}// Store referencerate={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.ignoreSilentSwitch={"ignore"}// [iOS] ignore | obey - When 'ignore', audio will still play with the iOS hard silent switch set to silent. When 'obey', audio will toggle with the switch. When not specified, will inherit audio settings as usual.progressUpdateInterval={250.0}// [iOS] Interval to fire onProgress (default to ~250ms)onLoadStart={this.loadStart}// Callback when video starts to loadonLoad={this.setDuration}// Callback when video loadsonProgress={this.setTime}// Callback every ~250ms with currentTimeonEnd={this.onEnd}// Callback when playback finishesonError={this.videoError}// Callback when video cannot be loadedonBuffer={this.onBuffer}// Callback when remote video is bufferingonTimedMetadata={this.onTimedMetadata}// Callback when the stream receive some metadatastyle={styles.backgroundVideo}/>// Later to trigger fullscreenthis.player.presentFullscreenPlayer()// To set video position in seconds (seek)this.player.seek(0)// Later on in your styles..varstyles=StyleSheet.create({backgroundVideo: {position: 'absolute',top: 0,left: 0,bottom: 0,right: 0,},});MIT Licensed