oleh-mryhlod / react-native-video-helper

React Native video helper library, to compress and trim videos using AVFoundation in iOS and MediaCodec in Android

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

react-native-video-helper

Getting started

$ npm install react-native-video-helper --save

Supported versions

React-Native Version Video-Helper Supported Version
RN >= 0.60 >= 1.4.3

If you are using react-native before 0.60 version, you can link using:

Automatic installation

$ react-native link react-native-video-helper

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-video-helper and add RNVideoHelper.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNVideoHelper.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.reactnativevideohelper.RNVideoHelperPackage; to the imports at the top of the file
  • Add new RNVideoHelperPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-video-helper'
    project(':react-native-video-helper').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-video-helper/android')
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-video-helper')
    

Usage

import RNVideoHelper from 'react-native-video-helper';

const sourceUri = 'assets-library://asset/asset.mov?id=0F3F0000-9518-4F32-B389-7117F4C2B069&ext=mov';

// compress
RNVideoHelper.compress(sourceUri, {
	startTime: 10, // optional, in seconds, defaults to 0
	endTime: 100, //  optional, in seconds, defaults to video duration
	quality: 'low', // default low, can be medium or high
	defaultOrientation: 0 // By default is 0, some devices not save this property in metadata. Can be between 0 - 360
}).progress(value => {
	console.warn('progress', value); // Int with progress value from 0 to 1
}).then(compressedUri => {
	console.warn('compressedUri', compressedUri); // String with path to temporary compressed video
});

// cancel compress
// Android: cancel video compression, removes progress listener
// iOS: removes progress listener
RNVideoHelper.cancelCompress();

About

React Native video helper library, to compress and trim videos using AVFoundation in iOS and MediaCodec in Android

License:MIT License


Languages

Language:Objective-C 81.1%Language:Java 12.7%Language:JavaScript 4.3%Language:Ruby 1.9%