-
-
Notifications
You must be signed in to change notification settings - Fork 108
/
Copy pathCompressorManager.swift
117 lines (93 loc) · 5.43 KB
/
CompressorManager.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import Foundation
import AVFoundation
let videoCompressor = VideoCompressor()
let uploader=Uploader()
@objc(Compressor)
class Compressor: RCTEventEmitter {
override static func moduleName() -> String {
return "Compressor"
}
override init() {
super.init()
EventEmitterHandler.initCompressorInstance(self)
}
override func stopObserving() -> Void {
EventEmitterHandler.stopObserving()
}
override func startObserving() -> Void {
EventEmitterHandler.startObserving()
}
override static func requiresMainQueueSetup() -> Bool {
return false
}
override func supportedEvents() -> [String] {
return ["downloadProgress", "videoCompressProgress", "uploadProgress", "backgroundTaskExpired"]
}
@objc(image_compress:withOptions:withResolver:withRejecter:)
func image_compress(_ imagePath: String, optionMap: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
ImageMain.image_compress(imagePath, optionMap: optionMap, resolve: resolve, reject: reject)
}
@objc(getImageMetaData:withResolver:withRejecter:)
func getImageMetaData(_ filePath: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
ImageMain.getImageMetaData(filePath,resolve: resolve,reject: reject)
}
@objc(compress_audio:withOptions:withResolver:withRejecter:)
func compress_audio(_ fileUrl: String, optionMap: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
AudioMain.compress_audio(fileUrl, optionMap: optionMap, resolve: resolve, reject: reject)
}
@objc(generateFilePath:withResolver:withRejecter:)
func generateFilePath(_ _extension: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
Utils.generateFilePath(_extension, resolve: resolve, reject: reject)
}
@objc(getRealPath:withType:withResolver:withRejecter:)
func getRealPath(_ path: String, type: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
Utils.getRealPath(path, type: type, resolve: resolve, reject: reject)
}
@objc(getFileSize:withResolver:withRejecter:)
func getFileSize(_ filePath: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
Utils.getFileSize(filePath, resolve: resolve, reject: reject)
}
@objc(getVideoMetaData:withResolver:withRejecter:)
func getVideoMetaData(_ filePath: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
videoCompressor.getVideoMetaData(filePath,resolve: resolve,reject: reject)
}
@objc(activateBackgroundTask:withResolver:withRejecter:)
func activateBackgroundTask(options: [String: Any], resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
videoCompressor.activateBackgroundTask(options: options,resolve: resolve,reject: reject)
}
@objc(deactivateBackgroundTask:withResolver:withRejecter:)
func deactivateBackgroundTask(options: [String: Any], resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
videoCompressor.deactivateBackgroundTask(options: options,resolve: resolve,reject: reject)
}
@objc(compress:withOptions:withResolver:withRejecter:)
func compress(fileUrl: String, options: [String: Any], resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
videoCompressor.compress(fileUrl: fileUrl, options: options, resolve: resolve, reject: reject)
}
@objc(cancelCompression:)
func cancelCompression(uuid: String) -> Void {
videoCompressor.cancelCompression(uuid: uuid)
}
@objc(upload:withOptions:withResolver:withRejecter:)
func upload(filePath: String, options: [String: Any], resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
uploader.upload(filePath: filePath, options: options, resolve: resolve, reject: reject)
}
@objc(cancelUpload:withShouldCancelAll:)
func cancelUpload(uuid: String,shouldCancelAll:Bool) -> Void {
uploader.cancelUpload(uuid: uuid,shouldCancelAll: shouldCancelAll)
}
@objc(download:withOptions:withResolver:withRejecter:)
func download(filePath: String, options: [String: Any], resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
Downloader.downloadFileAndSaveToCache(filePath, uuid: options["uuid"] as! String,progressDivider: options["progressDivider"] as? Int ?? 0) { downloadedPath in
resolve(downloadedPath)
}
}
@objc(createVideoThumbnail:withOptions:withResolver:withRejecter:)
func createVideoThumbnail(fileUrl: String, options: NSDictionary, resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
let videoThumbnail=CreateVideoThumbnail()
videoThumbnail.create(fileUrl,options: options, resolve: resolve, rejecter: reject)
}
@objc(clearCache:withResolver:withRejecter:)
func clearCache(cacheDir: String, resolve:@escaping RCTPromiseResolveBlock, reject:@escaping RCTPromiseRejectBlock) -> Void {
CreateVideoThumbnail.cleanCacheDir(cacheDir: cacheDir,resolve: resolve,rejecter: reject)
}
}