react-native-compressor 1.7.2 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -8
- package/android/build.gradle +9 -0
- package/android/src/main/java/com/reactnativecompressor/Audio/AudioCompressor.kt +527 -0
- package/android/src/main/java/com/reactnativecompressor/Audio/AudioMain.kt +31 -0
- package/android/src/main/java/com/reactnativecompressor/CompressorModule.kt +169 -0
- package/android/src/main/java/com/reactnativecompressor/CompressorPackage.kt +34 -0
- package/android/src/main/java/com/reactnativecompressor/Image/ImageCompressor.kt +199 -0
- package/android/src/main/java/com/reactnativecompressor/Image/ImageCompressorOptions.kt +57 -0
- package/android/src/main/java/com/reactnativecompressor/Image/ImageMain.kt +31 -0
- package/android/src/main/java/com/reactnativecompressor/Image/ImageSize.kt +3 -0
- package/android/src/main/java/com/reactnativecompressor/Utils/Downloader.kt +119 -0
- package/android/src/main/java/com/reactnativecompressor/Utils/EventEmitterHandler.kt +66 -0
- package/android/src/main/java/com/reactnativecompressor/Utils/MediaCache.kt +61 -0
- package/android/src/main/java/com/reactnativecompressor/Utils/RealPathUtil.kt +177 -0
- package/android/src/main/java/com/reactnativecompressor/Utils/Uploader.kt +117 -0
- package/android/src/main/java/com/reactnativecompressor/Utils/Utils.kt +162 -0
- package/android/src/main/java/com/reactnativecompressor/Utils/createVideoThumbnail.kt +158 -0
- package/android/src/main/java/com/reactnativecompressor/Video/AutoVideoCompression.kt +63 -0
- package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.kt +125 -0
- package/android/src/main/java/com/reactnativecompressor/Video/VideoMain.kt +86 -0
- package/android/src/newarch/CompressorSpec.kt +5 -0
- package/android/src/oldarch/CompressorSpec.kt +34 -0
- package/ios/Audio/AudioMain.swift +115 -0
- package/ios/Compressor-Bridging-Header.h +1 -2
- package/ios/Compressor.h +0 -8
- package/ios/Compressor.mm +37 -389
- package/ios/CompressorManager.swift +107 -0
- package/ios/Image/ImageCompressor.swift +354 -0
- package/ios/Image/ImageCompressorOptions.swift +93 -0
- package/ios/Image/ImageMain.swift +27 -0
- package/ios/Utils/CreateVideoThumbnail.swift +111 -0
- package/ios/Utils/Downloader.swift +157 -0
- package/ios/Utils/EventEmitterHandler.swift +54 -0
- package/ios/Utils/MediaCache.swift +48 -0
- package/ios/Utils/Uploader.swift +99 -0
- package/ios/Utils/Utils.swift +110 -0
- package/ios/Video/{VideoCompressor.swift → VideoMain.swift} +167 -146
- package/lib/commonjs/Image/index.js +1 -1
- package/lib/commonjs/Image/index.js.map +1 -1
- package/lib/commonjs/Main.js +1 -8
- package/lib/commonjs/Main.js.map +1 -1
- package/lib/commonjs/Spec/NativeCompressor.js.map +1 -1
- package/lib/commonjs/Video/index.js +4 -33
- package/lib/commonjs/Video/index.js.map +1 -1
- package/lib/commonjs/expo-plugin/compressor.js.map +1 -1
- package/lib/commonjs/index.js +25 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/Downloader.js +38 -0
- package/lib/commonjs/utils/Downloader.js.map +1 -0
- package/lib/commonjs/utils/Uploader.js +40 -0
- package/lib/commonjs/utils/Uploader.js.map +1 -0
- package/lib/commonjs/utils/index.js +47 -1
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/Image/index.js +1 -1
- package/lib/module/Image/index.js.map +1 -1
- package/lib/module/Main.js +1 -7
- package/lib/module/Main.js.map +1 -1
- package/lib/module/Spec/NativeCompressor.js.map +1 -1
- package/lib/module/Video/index.js +5 -33
- package/lib/module/Video/index.js.map +1 -1
- package/lib/module/expo-plugin/compressor.js.map +1 -1
- package/lib/module/index.js +9 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/Downloader.js +31 -0
- package/lib/module/utils/Downloader.js.map +1 -0
- package/lib/module/utils/Uploader.js +33 -0
- package/lib/module/utils/Uploader.js.map +1 -0
- package/lib/module/utils/index.js +9 -0
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/Image/index.d.ts +4 -0
- package/lib/typescript/Image/index.d.ts.map +1 -1
- package/lib/typescript/Main.d.ts +1 -2
- package/lib/typescript/Main.d.ts.map +1 -1
- package/lib/typescript/Spec/NativeCompressor.d.ts +16 -2
- package/lib/typescript/Spec/NativeCompressor.d.ts.map +1 -1
- package/lib/typescript/Video/index.d.ts +4 -28
- package/lib/typescript/Video/index.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +7 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils/Downloader.d.ts +2 -0
- package/lib/typescript/utils/Downloader.d.ts.map +1 -0
- package/lib/typescript/utils/Uploader.d.ts +28 -0
- package/lib/typescript/utils/Uploader.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +4 -1
- package/lib/typescript/utils/index.d.ts.map +1 -1
- package/package.json +6 -4
- package/src/Image/index.tsx +5 -1
- package/src/Main.tsx +1 -15
- package/src/Spec/NativeCompressor.ts +25 -2
- package/src/Video/index.tsx +11 -84
- package/src/expo-plugin/compressor.ts +1 -1
- package/src/index.tsx +12 -3
- package/src/utils/Downloader.tsx +38 -0
- package/src/utils/Uploader.tsx +78 -0
- package/src/utils/index.tsx +15 -0
- package/android/src/main/java/com/reactnativecompressor/Audio/AudioCompressor.java +0 -605
- package/android/src/main/java/com/reactnativecompressor/CompressorModule.java +0 -220
- package/android/src/main/java/com/reactnativecompressor/CompressorPackage.java +0 -58
- package/android/src/main/java/com/reactnativecompressor/Image/ImageCompressor.java +0 -257
- package/android/src/main/java/com/reactnativecompressor/Image/utils/ImageCompressorOptions.java +0 -69
- package/android/src/main/java/com/reactnativecompressor/Image/utils/ImageSize.java +0 -13
- package/android/src/main/java/com/reactnativecompressor/Utils/FileUplaoder/FileUploadHelper.java +0 -39
- package/android/src/main/java/com/reactnativecompressor/Utils/FileUplaoder/FileUploader.java +0 -129
- package/android/src/main/java/com/reactnativecompressor/Utils/MediaCache.java +0 -65
- package/android/src/main/java/com/reactnativecompressor/Utils/RealPathUtil.java +0 -210
- package/android/src/main/java/com/reactnativecompressor/Utils/Utils.java +0 -272
- package/android/src/main/java/com/reactnativecompressor/Video/AutoVideoCompression/AutoVideoCompression.java +0 -87
- package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.java +0 -182
- package/android/src/main/java/com/reactnativecompressor/Video/VideoModule.java +0 -112
- package/android/src/newarch/CompressorSpec.java +0 -9
- package/android/src/newarch/VideoCompressorSpec.java +0 -9
- package/android/src/oldarch/CompressorSpec.java +0 -34
- package/android/src/oldarch/VideoCompressorSpec.java +0 -26
- package/ios/Image/ImageCompressor.h +0 -22
- package/ios/Image/ImageCompressor.m +0 -540
- package/ios/Image/ImageCompressorOptions.h +0 -28
- package/ios/Image/ImageCompressorOptions.m +0 -97
- package/ios/Utils/Downloader.h +0 -16
- package/ios/Utils/Downloader.m +0 -150
- package/ios/Utils/MediaCache.h +0 -11
- package/ios/Utils/MediaCache.m +0 -51
- package/ios/Video/VideoCompressor.h +0 -5
- package/ios/Video/VideoCompressor.m +0 -1
- package/lib/commonjs/Spec/NativeVideoCompressor.js +0 -10
- package/lib/commonjs/Spec/NativeVideoCompressor.js.map +0 -1
- package/lib/module/Spec/NativeVideoCompressor.js +0 -3
- package/lib/module/Spec/NativeVideoCompressor.js.map +0 -1
- package/lib/typescript/Spec/NativeVideoCompressor.d.ts +0 -13
- package/lib/typescript/Spec/NativeVideoCompressor.d.ts.map +0 -1
- package/src/Spec/NativeVideoCompressor.ts +0 -14
package/README.md
CHANGED
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
**REACT-NATIVE-COMPRESSOR** is a react-native package, which helps us to Compress `Image`, `Video`, and `Audio` before uploading, same like **Whatsapp** without knowing the compression `algorithm`
|
|
18
18
|
|
|
19
19
|
<div align="center">
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
<pre>
|
|
21
|
+
<img height="90" src="/media/whatsapp_logo.png"/> <img height="90" src="/media/compress_media.png"/>
|
|
22
|
+
</pre>
|
|
23
23
|
<h2 align="center">🗜️Compress Image, Video, and Audio same like Whatsapp</h2>
|
|
24
24
|
</div>
|
|
25
25
|
|
|
@@ -53,9 +53,7 @@ We should use **react-native-compressor** instead of **FFmpeg** because **react-
|
|
|
53
53
|
<summary>Open Table of Contents</summary>
|
|
54
54
|
|
|
55
55
|
- [Installation](#installation)
|
|
56
|
-
- [For React Native](#
|
|
57
|
-
- [For React Native<0.65](#for-react-native065)
|
|
58
|
-
- [For React Native 0.65 or greater](#for-react-native-065-or-greater)
|
|
56
|
+
- [For React Native](#Installation)
|
|
59
57
|
- [Managed Expo](#managed-expo)
|
|
60
58
|
- [Usage](#usage)
|
|
61
59
|
- [Image](#image)
|
|
@@ -69,6 +67,7 @@ We should use **react-native-compressor** instead of **FFmpeg** because **react-
|
|
|
69
67
|
- [Video Api Docs](#video-1)
|
|
70
68
|
- [Audio](#audio)
|
|
71
69
|
- [Background Upload](#background-upload)
|
|
70
|
+
- [Download File](#download)
|
|
72
71
|
|
|
73
72
|
* [Other Utilities](#api)
|
|
74
73
|
- [Background Upload](#background-upload-1)
|
|
@@ -85,7 +84,7 @@ yarn add react-native-compressor
|
|
|
85
84
|
|
|
86
85
|
### [New Architecture (Turbo Module)](https://reactnative.dev/docs/new-architecture-intro) Supported
|
|
87
86
|
|
|
88
|
-
you can give feedback on [Discord channel](https://discord.gg/
|
|
87
|
+
you can give feedback on [Discord channel](https://discord.gg/6Wx8Em8KAN)
|
|
89
88
|
|
|
90
89
|
### Managed Expo
|
|
91
90
|
|
|
@@ -164,6 +163,7 @@ import { Image } from 'react-native-compressor';
|
|
|
164
163
|
const result = await Image.compress('file://path_of_file/image.jpg');
|
|
165
164
|
// OR
|
|
166
165
|
const result = await Image.compress('https://path_of_file/image.jpg', {
|
|
166
|
+
progressDivider: 10,
|
|
167
167
|
downloadProgress: (progress) => {
|
|
168
168
|
console.log('downloadProgress: ', progress);
|
|
169
169
|
},
|
|
@@ -204,6 +204,7 @@ const result = await Video.compress(
|
|
|
204
204
|
const result = await Video.compress(
|
|
205
205
|
'https://example.com/video.mp4',
|
|
206
206
|
{
|
|
207
|
+
progressDivider: 10,
|
|
207
208
|
downloadProgress: (progress) => {
|
|
208
209
|
console.log('downloadProgress: ', progress);
|
|
209
210
|
},
|
|
@@ -288,6 +289,26 @@ const uploadResult = await backgroundUpload(
|
|
|
288
289
|
);
|
|
289
290
|
```
|
|
290
291
|
|
|
292
|
+
### Download File
|
|
293
|
+
|
|
294
|
+
```js
|
|
295
|
+
import { download } from 'react-native-compressor';
|
|
296
|
+
|
|
297
|
+
const downloadFileUrl = await download(url, (progress) => {
|
|
298
|
+
console.log('downloadProgress: ', progress);
|
|
299
|
+
});
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### Video Thumbnail
|
|
303
|
+
|
|
304
|
+
```js
|
|
305
|
+
import { createVideoThumbnail, clearCache } from 'react-native-compressor';
|
|
306
|
+
|
|
307
|
+
const thumbnail = await createVideoThumbnail(videoUri);
|
|
308
|
+
|
|
309
|
+
await clearCache(); // this will clear cache of thumbnails cache directory
|
|
310
|
+
```
|
|
311
|
+
|
|
291
312
|
# API
|
|
292
313
|
|
|
293
314
|
## Image
|
|
@@ -308,6 +329,10 @@ const uploadResult = await backgroundUpload(
|
|
|
308
329
|
|
|
309
330
|
it is callback, only trigger when we pass image url from server
|
|
310
331
|
|
|
332
|
+
- ##### `progressDivider?: number` (default: 0)
|
|
333
|
+
|
|
334
|
+
we uses it when we use downloadProgress
|
|
335
|
+
|
|
311
336
|
- ###### `maxWidth: number` (default: 1280)
|
|
312
337
|
|
|
313
338
|
The maximum width boundary used as the main boundary in resizing a landscape image.
|
|
@@ -348,6 +373,10 @@ const uploadResult = await backgroundUpload(
|
|
|
348
373
|
|
|
349
374
|
it is callback, only trigger when we pass image url from server
|
|
350
375
|
|
|
376
|
+
- ##### `progressDivider?: number` (default: 0)
|
|
377
|
+
|
|
378
|
+
we uses it when we use downloadProgress/onProgress
|
|
379
|
+
|
|
351
380
|
- ###### `maxSize: number` (default: 640)
|
|
352
381
|
|
|
353
382
|
The maximum size can be height in case of portrait video or can be width in case of landscape video.
|
|
@@ -376,7 +405,7 @@ const uploadResult = await backgroundUpload(
|
|
|
376
405
|
|
|
377
406
|
## Background Upload
|
|
378
407
|
|
|
379
|
-
- ######
|
|
408
|
+
- ###### backgroundUpload: (url: string, fileUrl: string, options: FileSystemUploadOptions, onProgress?: ((writtem: number, total: number) => void) | undefined) => Promise< any >
|
|
380
409
|
|
|
381
410
|
- ###### ` FileSystemUploadOptions`
|
|
382
411
|
|
|
@@ -398,6 +427,20 @@ type FileSystemUploadOptions = (
|
|
|
398
427
|
};
|
|
399
428
|
```
|
|
400
429
|
|
|
430
|
+
### Download
|
|
431
|
+
|
|
432
|
+
- ##### download: ( fileUrl: string, downloadProgress?: (progress: number) => void, progressDivider?: number ) => Promise< string >
|
|
433
|
+
|
|
434
|
+
### Create Video Thumbnail and clear cache
|
|
435
|
+
|
|
436
|
+
- #### createVideoThumbnail( fileUrl: string, options: {header:Object} ): Promise<{ path: string;size: number; mime: string; width: number; height: number; }>
|
|
437
|
+
|
|
438
|
+
it will save the thumbnail of the video into the cache directory and return the thumbnail URI which you can display
|
|
439
|
+
|
|
440
|
+
- #### clearCache(cacheDir?: string): Promise< string >
|
|
441
|
+
|
|
442
|
+
it will clear the cache that was created from createVideoThumbnail, in future this clear cache will be totally customized
|
|
443
|
+
|
|
401
444
|
### Get Metadata Of Video
|
|
402
445
|
|
|
403
446
|
if you want to get metadata of video than you can use this function
|
package/android/build.gradle
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
buildscript {
|
|
2
|
+
// Buildscript is evaluated before everything else so we can't use getExtOrDefault
|
|
3
|
+
def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["Compressor_kotlinVersion"]
|
|
4
|
+
|
|
2
5
|
repositories {
|
|
3
6
|
google()
|
|
4
7
|
mavenCentral()
|
|
@@ -6,6 +9,8 @@ buildscript {
|
|
|
6
9
|
|
|
7
10
|
dependencies {
|
|
8
11
|
classpath "com.android.tools.build:gradle:7.2.1"
|
|
12
|
+
// noinspection DifferentKotlinGradleVersion
|
|
13
|
+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
9
14
|
}
|
|
10
15
|
}
|
|
11
16
|
|
|
@@ -14,6 +19,7 @@ def isNewArchitectureEnabled() {
|
|
|
14
19
|
}
|
|
15
20
|
|
|
16
21
|
apply plugin: "com.android.library"
|
|
22
|
+
apply plugin: "kotlin-android"
|
|
17
23
|
|
|
18
24
|
|
|
19
25
|
def appProject = rootProject.allprojects.find { it.plugins.hasPlugin('com.android.application') }
|
|
@@ -96,12 +102,15 @@ repositories {
|
|
|
96
102
|
google()
|
|
97
103
|
}
|
|
98
104
|
|
|
105
|
+
def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
99
106
|
|
|
100
107
|
dependencies {
|
|
101
108
|
// For < 0.71, this will be from the local maven repo
|
|
102
109
|
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
|
103
110
|
//noinspection GradleDynamicVersion
|
|
104
111
|
implementation "com.facebook.react:react-native:+"
|
|
112
|
+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
113
|
+
implementation 'commons-io:commons-io:2.8.0'
|
|
105
114
|
implementation 'io.github.lizhangqu:coreprogress:1.0.2'
|
|
106
115
|
implementation 'com.github.numandev1:VideoCompressor:1a262bba37'
|
|
107
116
|
}
|