react-native-video-kit
基于react-native-video开发的react-native平台视频播放器,完美支持Android
iOS
,包含全屏功能
Requires react-native >= 0.41.0
安装
在cmd中运行 npm install react-native-video-kit
Linking
自动
Run react-native link
手动
iOS
AppDelegate.m
// import - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Android
android/settings.gradle
include ':react-native-video-kit'
project(':react-native-video-kit').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video-kit/android')
android/app/build.gradle
dependencies {
...
compile project(':react-native-video-kit')
}
MainActivity.java
On top, where imports are:
Under .addPackage(new MainReactPackage())
:
.
MainApplication.java
Note: In react-native >= 0.41.0 you have to edit MainApplication.java (react-native >= 0.41.0)
On top, where imports are:
Under .addPackage(new MainReactPackage())
:
.
Usage
// 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. ref= { thisplayer = ref } // Store reference rate=10 // 0 is paused, 1 is normal. volume=10 // 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=2500 // [iOS] Interval to fire onProgress (default to ~250ms) onLoadStart=thisloadStart // Callback when video starts to load onLoad=thissetDuration // Callback when video loads onProgress=thissetTime // Callback every ~250ms with currentTime onEnd=thisonEnd // Callback when playback finishes onError=thisvideoError // Callback when video cannot be loaded onBuffer=thisonBuffer // Callback when remote video is buffering style=stylesbackgroundVideo /> // Later to trigger fullscreenthisplayer // To set video position in seconds (seek)thisplayer // Later on in your styles..var styles = StyleSheet;
Android Expansion File Usage
// 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=10 // 0 is paused, 1 is normal. volume=10 // 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=thisloadStart // Callback when video starts to load onLoad=thissetDuration // Callback when video loads onProgress=thissetTime // Callback every ~250ms with currentTime onEnd=thisonEnd // Callback when playback finishes onError=thisvideoError // Callback when video cannot be loaded style=stylesbackgroundVideo /> // Later on in your styles..var styles = Stylesheet;
MIT Licensed