react-native-video-processing
Version:
Native Video processing/editing for React-Native
52 lines (43 loc) • 1.51 kB
JavaScript
// @flow
import { NativeModules } from 'react-native';
import type {
sourceType,
trimOptions,
previewMaxSize,
format,
cropOptions
} from './types';
import { getActualSource } from '../utils';
const { RNTrimmerManager: TrimmerManager } = NativeModules;
export class ProcessingManager {
static trim(source: sourceType, options: trimOptions): Promise<string> {
const actualSource: string = getActualSource(source);
const mData = { source: actualSource, ...options };
return TrimmerManager.trim(mData)
.then((res) => res.source);
}
static getPreviewForSecond(
source: sourceType,
second: number,
maximumSize: previewMaxSize,
format: format
): Promise<*> {
const actualSource: string = getActualSource(source);
const mData = { source: actualSource, second, format };
return TrimmerManager.getPreviewImageAtPosition(mData)
.then((res) => res.image);
}
static getVideoInfo(source: sourceType): Promise<*> {
const actualSource: string = getActualSource(source);
return TrimmerManager.getVideoInfo(actualSource);
}
static compress(source: sourceType, options: any): Promise<*> {
const actualSource: string = getActualSource(source);
return TrimmerManager.compress(actualSource, options);
}
static crop(source: sourceType, options: cropOptions): Promise<string> {
const actualSource: string = getActualSource(source);
return TrimmerManager.crop(actualSource, options)
.then((res) => res.source);
}
}