@100mslive/react-native-video-plugin 0.1.2 → 1.1.0
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 +36 -0
- package/android/build.gradle +4 -4
- package/android/gradle.properties +5 -5
- package/android/src/main/java/com/hms/reactnativevideoplugin/ReactNativeVideoPluginModule.kt +1 -1
- package/lib/commonjs/HMSVideoPlugin.js +2 -2
- package/lib/commonjs/HMSVideoPlugin.js.map +1 -1
- package/lib/commonjs/HMSVirtualBackgroundPlugin.js +11 -0
- package/lib/commonjs/HMSVirtualBackgroundPlugin.js.map +1 -1
- package/lib/module/HMSVideoPlugin.js +2 -2
- package/lib/module/HMSVideoPlugin.js.map +1 -1
- package/lib/module/HMSVirtualBackgroundPlugin.js +11 -0
- package/lib/module/HMSVirtualBackgroundPlugin.js.map +1 -1
- package/package.json +14 -33
- package/sdk-versions.json +1 -1
- package/src/HMSVideoPlugin.ts +2 -2
- package/src/HMSVirtualBackgroundPlugin.ts +19 -1
package/README.md
CHANGED
|
@@ -1,9 +1,45 @@
|
|
|
1
1
|
# @100mslive/react-native-video-plugin
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@100mslive/react-native-video-plugin)
|
|
4
|
+
[](https://github.com/100mslive/100ms-react-native/actions/workflows/build.yml)
|
|
5
|
+
[](https://www.100ms.live/)
|
|
6
|
+
[](https://www.npmjs.com/package/@100mslive/react-native-hms)
|
|
7
|
+
[](https://www.npmjs.com/package/@100mslive/react-native-hms)
|
|
8
|
+
[](https://docs.100ms.live/react-native/v2/foundation/basics)
|
|
9
|
+
[](https://100ms.live/discord)
|
|
10
|
+
[](https://appdistribution.firebase.dev/i/7b7ab3b30e627c35)
|
|
11
|
+
[](https://testflight.apple.com/join/v4bSIPad)
|
|
12
|
+
[](https://github.com/100mslive/100ms-react-native/projects?type=classic)
|
|
13
|
+
[](https://dashboard.100ms.live/register)
|
|
14
|
+
|
|
15
|
+
<p align="center" width="100%">
|
|
16
|
+
<img alt="Prebuilt - VB" src="https://github.com/100mslive/flutter-video-plugin/assets/93931528/b85b5f48-b06c-4b11-b3d6-8639f8cbd1c3">
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
Integrate virtual backgrounds, blur backgrounds effects in your React Native app with the 100ms Video Plugin. 100ms video plugin enabled adding virtual backgrounds, blur backgrounds, and other video filters to your 100ms video conferencing app. The plugin is built on top of the 100ms React Native SDK.
|
|
20
|
+
|
|
21
|
+
📖 Read the Complete Documentation here: https://www.100ms.live/docs/react-native/v2/quickstart/quickstart
|
|
22
|
+
|
|
23
|
+
📲 Download the Example iOS app here: https://testflight.apple.com/join/v4bSIPad
|
|
24
|
+
|
|
25
|
+
🤖 Download the Example Android app here: https://appdistribution.firebase.dev/i/7b7ab3b30e627c35
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
<div align="center">
|
|
29
|
+
<video src="https://github.com/100mslive/flutter-video-plugin/assets/93931528/c44c4501-dd70-4d92-a23d-06fee1872278" controls >
|
|
30
|
+
</div>
|
|
31
|
+
|
|
3
32
|
|
|
4
33
|
Virtual Background plugin helps in customising one's background that replacing the background with a static image or blurring the background.
|
|
5
34
|
This guide provides an overview of usage of the Virtual Background plugin of 100ms.
|
|
6
35
|
|
|
36
|
+
| Package | Version |
|
|
37
|
+
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
38
|
+
| @100mslive/react-native-room-kit | [](https://www.npmjs.com/package/@100mslive/react-native-room-kit) |
|
|
39
|
+
| @100mslive/react-native-hms | [](https://www.npmjs.com/package/@100mslive/react-native-hms) |
|
|
40
|
+
| @100mslive/react-native-video-plugin | [](https://www.npmjs.com/package/@100mslive/react-native-video-plugin) |
|
|
41
|
+
|
|
42
|
+
|
|
7
43
|
## Minimum Requirements
|
|
8
44
|
|
|
9
45
|
- Minimum [`@100mslive/react-native-hms`](https://github.com/100mslive/100ms-react-native) SDK version is `^1.10.6`
|
package/android/build.gradle
CHANGED
|
@@ -12,7 +12,7 @@ buildscript {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
dependencies {
|
|
15
|
-
classpath "com.android.tools.build:gradle:7.2
|
|
15
|
+
classpath "com.android.tools.build:gradle:8.7.2"
|
|
16
16
|
// noinspection DifferentKotlinGradleVersion
|
|
17
17
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
18
18
|
}
|
|
@@ -71,13 +71,13 @@ android {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
lint {
|
|
75
75
|
disable "GradleCompatible"
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
compileOptions {
|
|
79
|
-
sourceCompatibility JavaVersion.
|
|
80
|
-
targetCompatibility JavaVersion.
|
|
79
|
+
sourceCompatibility JavaVersion.VERSION_17
|
|
80
|
+
targetCompatibility JavaVersion.VERSION_17
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
ReactNativeVideoPlugin_kotlinVersion=
|
|
2
|
-
ReactNativeVideoPlugin_minSdkVersion=
|
|
3
|
-
ReactNativeVideoPlugin_targetSdkVersion=
|
|
4
|
-
ReactNativeVideoPlugin_compileSdkVersion=
|
|
5
|
-
ReactNativeVideoPlugin_ndkversion=
|
|
1
|
+
ReactNativeVideoPlugin_kotlinVersion=2.0.21
|
|
2
|
+
ReactNativeVideoPlugin_minSdkVersion=24
|
|
3
|
+
ReactNativeVideoPlugin_targetSdkVersion=35
|
|
4
|
+
ReactNativeVideoPlugin_compileSdkVersion=35
|
|
5
|
+
ReactNativeVideoPlugin_ndkversion=27.1.12297006
|
package/android/src/main/java/com/hms/reactnativevideoplugin/ReactNativeVideoPluginModule.kt
CHANGED
|
@@ -71,7 +71,7 @@ class ReactNativeVideoPluginModule(reactContext: ReactApplicationContext) :
|
|
|
71
71
|
}
|
|
72
72
|
try {
|
|
73
73
|
val bitmap: Bitmap? =
|
|
74
|
-
if (bgImageUri.startsWith("http://")) {
|
|
74
|
+
if (bgImageUri.startsWith("http://") || bgImageUri.startsWith("https://")) {
|
|
75
75
|
val url = URL(bgImageUri)
|
|
76
76
|
BitmapFactory.decodeStream(url.openConnection().getInputStream())
|
|
77
77
|
} else if (bgImageUri.startsWith("file://")) {
|
|
@@ -27,7 +27,7 @@ class HMSVideoPlugin {
|
|
|
27
27
|
};
|
|
28
28
|
if (__DEV__) console.log('#Function HMSVirtualBackgroundPlugin#enable', data);
|
|
29
29
|
try {
|
|
30
|
-
return this.nativeModule.enableVideoPlugin(data);
|
|
30
|
+
return await this.nativeModule.enableVideoPlugin(data);
|
|
31
31
|
} catch (e) {
|
|
32
32
|
if (__DEV__) console.warn('#Error in #Function HMSVirtualBackgroundPlugin#enable ', e);
|
|
33
33
|
return Promise.reject(e);
|
|
@@ -45,7 +45,7 @@ class HMSVideoPlugin {
|
|
|
45
45
|
};
|
|
46
46
|
if (__DEV__) console.log('#Function HMSVirtualBackgroundPlugin#disable', data);
|
|
47
47
|
try {
|
|
48
|
-
return this.nativeModule.disableVideoPlugin(data);
|
|
48
|
+
return await this.nativeModule.disableVideoPlugin(data);
|
|
49
49
|
} catch (e) {
|
|
50
50
|
if (__DEV__) console.warn('#Error in #Function HMSVirtualBackgroundPlugin#disable ', e);
|
|
51
51
|
return Promise.reject(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeHms","_ReactNativeVideoPluginModule","_nativeModule","Platform","OS","ReactNativeVideoPlugin","nativeModule","HMSManagerModule","HMSVideoPlugin","constructor","pluginType","type","enable","data","id","__DEV__","console","log","enableVideoPlugin","e","warn","Promise","reject","disable","disableVideoPlugin","exports"],"sourceRoot":"../../src","sources":["HMSVideoPlugin.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,6BAAA,GAAAF,OAAA;AAEA,MAAMG,aAAa,GACjBC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACrBC,oDAAsB,CAACC,YAAY,GACnCC,gCAAgB;AAEf,MAAMC,cAAc,CAAC;EAG1BC,WAAWA,CAACC,UAAkB,EAAE;IAC9B,IAAI,CAACC,IAAI,GAAGD,UAAU;EACxB;EAEA,IAAcJ,YAAYA,CAAA,EAAG;IAC3B,OAAOJ,aAAa;EACtB;;EAEA;AACF;AACA;AACA;EACE,MAAMU,MAAMA,CAAA,EAAqB;IAC/B,MAAMC,IAAI,GAAG;MAAEC,EAAE,EAAE,OAAO;MAAEH,IAAI,EAAE,IAAI,CAACA;IAAK,CAAC;IAC7C,IAAII,OAAO,EACTC,OAAO,CAACC,GAAG,CAAC,6CAA6C,EAAEJ,IAAI,CAAC;IAElE,IAAI;MACF,OAAO,IAAI,CAACP,YAAY,CAACY,iBAAiB,CAACL,IAAI,CAAC;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeHms","_ReactNativeVideoPluginModule","_nativeModule","Platform","OS","ReactNativeVideoPlugin","nativeModule","HMSManagerModule","HMSVideoPlugin","constructor","pluginType","type","enable","data","id","__DEV__","console","log","enableVideoPlugin","e","warn","Promise","reject","disable","disableVideoPlugin","exports"],"sourceRoot":"../../src","sources":["HMSVideoPlugin.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,6BAAA,GAAAF,OAAA;AAEA,MAAMG,aAAa,GACjBC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACrBC,oDAAsB,CAACC,YAAY,GACnCC,gCAAgB;AAEf,MAAMC,cAAc,CAAC;EAG1BC,WAAWA,CAACC,UAAkB,EAAE;IAC9B,IAAI,CAACC,IAAI,GAAGD,UAAU;EACxB;EAEA,IAAcJ,YAAYA,CAAA,EAAG;IAC3B,OAAOJ,aAAa;EACtB;;EAEA;AACF;AACA;AACA;EACE,MAAMU,MAAMA,CAAA,EAAqB;IAC/B,MAAMC,IAAI,GAAG;MAAEC,EAAE,EAAE,OAAO;MAAEH,IAAI,EAAE,IAAI,CAACA;IAAK,CAAC;IAC7C,IAAII,OAAO,EACTC,OAAO,CAACC,GAAG,CAAC,6CAA6C,EAAEJ,IAAI,CAAC;IAElE,IAAI;MACF,OAAO,MAAM,IAAI,CAACP,YAAY,CAACY,iBAAiB,CAACL,IAAI,CAAC;IACxD,CAAC,CAAC,OAAOM,CAAC,EAAE;MACV,IAAIJ,OAAO,EACTC,OAAO,CAACI,IAAI,CACV,wDAAwD,EACxDD,CACF,CAAC;MACH,OAAOE,OAAO,CAACC,MAAM,CAACH,CAAC,CAAC;IAC1B;EACF;;EAEA;AACF;AACA;AACA;EACE,MAAMI,OAAOA,CAAA,EAAqB;IAChC,MAAMV,IAAI,GAAG;MAAEC,EAAE,EAAE,OAAO;MAAEH,IAAI,EAAE,IAAI,CAACA;IAAK,CAAC;IAC7C,IAAII,OAAO,EACTC,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAEJ,IAAI,CAAC;IAEnE,IAAI;MACF,OAAO,MAAM,IAAI,CAACP,YAAY,CAACkB,kBAAkB,CAACX,IAAI,CAAC;IACzD,CAAC,CAAC,OAAOM,CAAC,EAAE;MACV,IAAIJ,OAAO,EACTC,OAAO,CAACI,IAAI,CACV,yDAAyD,EACzDD,CACF,CAAC;MACH,OAAOE,OAAO,CAACC,MAAM,CAACH,CAAC,CAAC;IAC1B;EACF;AACF;AAACM,OAAA,CAAAjB,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -55,6 +55,17 @@ class HMSVirtualBackgroundPlugin extends _HMSVideoPlugin.HMSVideoPlugin {
|
|
|
55
55
|
}
|
|
56
56
|
exports.HMSVirtualBackgroundPlugin = HMSVirtualBackgroundPlugin;
|
|
57
57
|
function resolveBackground(background) {
|
|
58
|
+
// Check if it's a remote URL with dimensions already provided
|
|
59
|
+
if (typeof background === 'object' && 'uri' in background && background.uri && (background.uri.startsWith('http://') || background.uri.startsWith('https://')) && background.width && background.height) {
|
|
60
|
+
// For remote URLs with dimensions, pass them through directly
|
|
61
|
+
// Don't use Image.resolveAssetSource() as it doesn't handle remote URLs properly
|
|
62
|
+
return {
|
|
63
|
+
type: 'image',
|
|
64
|
+
source: background
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// For bundled assets (require()) or local file:// URLs, use resolveAssetSource
|
|
58
69
|
return {
|
|
59
70
|
type: 'image',
|
|
60
71
|
source: _reactNative.Image.resolveAssetSource(background)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_HMSVideoPlugin","HMSVirtualBackgroundPlugin","HMSVideoPlugin","NAME","constructor","setBlur","blurRadius","data","id","background","type","nativeModule","changeVirtualBackground","setBackground","backgroundImage","resolveBackground","exports","source","Image","resolveAssetSource"],"sourceRoot":"../../src","sources":["HMSVirtualBackgroundPlugin.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAOA,IAAAC,eAAA,GAAAD,OAAA;AAEO,MAAME,0BAA0B,SAASC,8BAAc,CAAC;EAC7D,OAAOC,IAAI,GAAG,4BAA4B;EAE1CC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAACH,0BAA0B,CAACE,IAAI,CAAC;EACxC;;EAEA;AACF;AACA;AACA;EACEE,OAAOA,CAACC,UAAkB,EAAoB;IAC5C,MAAMC,IAAI,GAAG;MACXC,EAAE,EAAE,OAAO;MACXC,UAAU,EAAE;QAAEC,IAAI,EAAE,MAAM;QAAEJ;MAAW;IACzC,CAAC;IACD,OAAO,IAAI,CAACK,YAAY,CAACC,uBAAuB,CAACL,IAAI,CAAC;EACxD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,aAAaA,CACXC,eAAoD,EAClC;IAClB,MAAML,UAAU,GAAGM,iBAAiB,CAACD,eAAe,CAAC;IACrD,MAAMP,IAAI,GAAG;MACXC,EAAE,EAAE,OAAO;MACXC;IACF,CAAC;IACD,OAAO,IAAI,CAACE,YAAY,CAACC,uBAAuB,CAACL,IAAI,CAAC;EACxD;AACF;AAACS,OAAA,CAAAf,0BAAA,GAAAA,0BAAA;AAED,SAASc,iBAAiBA,CAACN,UAA+C,EAGxE;EACA,OAAO;IACLC,IAAI,EAAE,OAAO;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_HMSVideoPlugin","HMSVirtualBackgroundPlugin","HMSVideoPlugin","NAME","constructor","setBlur","blurRadius","data","id","background","type","nativeModule","changeVirtualBackground","setBackground","backgroundImage","resolveBackground","exports","uri","startsWith","width","height","source","Image","resolveAssetSource"],"sourceRoot":"../../src","sources":["HMSVirtualBackgroundPlugin.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAOA,IAAAC,eAAA,GAAAD,OAAA;AAEO,MAAME,0BAA0B,SAASC,8BAAc,CAAC;EAC7D,OAAOC,IAAI,GAAG,4BAA4B;EAE1CC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAACH,0BAA0B,CAACE,IAAI,CAAC;EACxC;;EAEA;AACF;AACA;AACA;EACEE,OAAOA,CAACC,UAAkB,EAAoB;IAC5C,MAAMC,IAAI,GAAG;MACXC,EAAE,EAAE,OAAO;MACXC,UAAU,EAAE;QAAEC,IAAI,EAAE,MAAM;QAAEJ;MAAW;IACzC,CAAC;IACD,OAAO,IAAI,CAACK,YAAY,CAACC,uBAAuB,CAACL,IAAI,CAAC;EACxD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,aAAaA,CACXC,eAAoD,EAClC;IAClB,MAAML,UAAU,GAAGM,iBAAiB,CAACD,eAAe,CAAC;IACrD,MAAMP,IAAI,GAAG;MACXC,EAAE,EAAE,OAAO;MACXC;IACF,CAAC;IACD,OAAO,IAAI,CAACE,YAAY,CAACC,uBAAuB,CAACL,IAAI,CAAC;EACxD;AACF;AAACS,OAAA,CAAAf,0BAAA,GAAAA,0BAAA;AAED,SAASc,iBAAiBA,CAACN,UAA+C,EAGxE;EACA;EACA,IACE,OAAOA,UAAU,KAAK,QAAQ,IAC9B,KAAK,IAAIA,UAAU,IACnBA,UAAU,CAACQ,GAAG,KACbR,UAAU,CAACQ,GAAG,CAACC,UAAU,CAAC,SAAS,CAAC,IAAIT,UAAU,CAACQ,GAAG,CAACC,UAAU,CAAC,UAAU,CAAC,CAAC,IAC/ET,UAAU,CAACU,KAAK,IAChBV,UAAU,CAACW,MAAM,EACjB;IACA;IACA;IACA,OAAO;MACLV,IAAI,EAAE,OAAO;MACbW,MAAM,EAAEZ;IACV,CAAC;EACH;;EAEA;EACA,OAAO;IACLC,IAAI,EAAE,OAAO;IACbW,MAAM,EAAEC,kBAAK,CAACC,kBAAkB,CAACd,UAAU;EAC7C,CAAC;AACH","ignoreList":[]}
|
|
@@ -21,7 +21,7 @@ export class HMSVideoPlugin {
|
|
|
21
21
|
};
|
|
22
22
|
if (__DEV__) console.log('#Function HMSVirtualBackgroundPlugin#enable', data);
|
|
23
23
|
try {
|
|
24
|
-
return this.nativeModule.enableVideoPlugin(data);
|
|
24
|
+
return await this.nativeModule.enableVideoPlugin(data);
|
|
25
25
|
} catch (e) {
|
|
26
26
|
if (__DEV__) console.warn('#Error in #Function HMSVirtualBackgroundPlugin#enable ', e);
|
|
27
27
|
return Promise.reject(e);
|
|
@@ -39,7 +39,7 @@ export class HMSVideoPlugin {
|
|
|
39
39
|
};
|
|
40
40
|
if (__DEV__) console.log('#Function HMSVirtualBackgroundPlugin#disable', data);
|
|
41
41
|
try {
|
|
42
|
-
return this.nativeModule.disableVideoPlugin(data);
|
|
42
|
+
return await this.nativeModule.disableVideoPlugin(data);
|
|
43
43
|
} catch (e) {
|
|
44
44
|
if (__DEV__) console.warn('#Error in #Function HMSVirtualBackgroundPlugin#disable ', e);
|
|
45
45
|
return Promise.reject(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","HMSManagerModule","ReactNativeVideoPlugin","_nativeModule","OS","nativeModule","HMSVideoPlugin","constructor","pluginType","type","enable","data","id","__DEV__","console","log","enableVideoPlugin","e","warn","Promise","reject","disable","disableVideoPlugin"],"sourceRoot":"../../src","sources":["HMSVideoPlugin.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,gBAAgB,QAAQ,6BAA6B;AAE9D,SAASC,sBAAsB,QAAQ,wCAAwC;AAE/E,MAAMC,aAAa,GACjBH,QAAQ,CAACI,EAAE,KAAK,SAAS,GACrBF,sBAAsB,CAACG,YAAY,GACnCJ,gBAAgB;AAEtB,OAAO,MAAMK,cAAc,CAAC;EAG1BC,WAAWA,CAACC,UAAkB,EAAE;IAC9B,IAAI,CAACC,IAAI,GAAGD,UAAU;EACxB;EAEA,IAAcH,YAAYA,CAAA,EAAG;IAC3B,OAAOF,aAAa;EACtB;;EAEA;AACF;AACA;AACA;EACE,MAAMO,MAAMA,CAAA,EAAqB;IAC/B,MAAMC,IAAI,GAAG;MAAEC,EAAE,EAAE,OAAO;MAAEH,IAAI,EAAE,IAAI,CAACA;IAAK,CAAC;IAC7C,IAAII,OAAO,EACTC,OAAO,CAACC,GAAG,CAAC,6CAA6C,EAAEJ,IAAI,CAAC;IAElE,IAAI;MACF,OAAO,IAAI,CAACN,YAAY,CAACW,iBAAiB,CAACL,IAAI,CAAC;
|
|
1
|
+
{"version":3,"names":["Platform","HMSManagerModule","ReactNativeVideoPlugin","_nativeModule","OS","nativeModule","HMSVideoPlugin","constructor","pluginType","type","enable","data","id","__DEV__","console","log","enableVideoPlugin","e","warn","Promise","reject","disable","disableVideoPlugin"],"sourceRoot":"../../src","sources":["HMSVideoPlugin.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,gBAAgB,QAAQ,6BAA6B;AAE9D,SAASC,sBAAsB,QAAQ,wCAAwC;AAE/E,MAAMC,aAAa,GACjBH,QAAQ,CAACI,EAAE,KAAK,SAAS,GACrBF,sBAAsB,CAACG,YAAY,GACnCJ,gBAAgB;AAEtB,OAAO,MAAMK,cAAc,CAAC;EAG1BC,WAAWA,CAACC,UAAkB,EAAE;IAC9B,IAAI,CAACC,IAAI,GAAGD,UAAU;EACxB;EAEA,IAAcH,YAAYA,CAAA,EAAG;IAC3B,OAAOF,aAAa;EACtB;;EAEA;AACF;AACA;AACA;EACE,MAAMO,MAAMA,CAAA,EAAqB;IAC/B,MAAMC,IAAI,GAAG;MAAEC,EAAE,EAAE,OAAO;MAAEH,IAAI,EAAE,IAAI,CAACA;IAAK,CAAC;IAC7C,IAAII,OAAO,EACTC,OAAO,CAACC,GAAG,CAAC,6CAA6C,EAAEJ,IAAI,CAAC;IAElE,IAAI;MACF,OAAO,MAAM,IAAI,CAACN,YAAY,CAACW,iBAAiB,CAACL,IAAI,CAAC;IACxD,CAAC,CAAC,OAAOM,CAAC,EAAE;MACV,IAAIJ,OAAO,EACTC,OAAO,CAACI,IAAI,CACV,wDAAwD,EACxDD,CACF,CAAC;MACH,OAAOE,OAAO,CAACC,MAAM,CAACH,CAAC,CAAC;IAC1B;EACF;;EAEA;AACF;AACA;AACA;EACE,MAAMI,OAAOA,CAAA,EAAqB;IAChC,MAAMV,IAAI,GAAG;MAAEC,EAAE,EAAE,OAAO;MAAEH,IAAI,EAAE,IAAI,CAACA;IAAK,CAAC;IAC7C,IAAII,OAAO,EACTC,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAEJ,IAAI,CAAC;IAEnE,IAAI;MACF,OAAO,MAAM,IAAI,CAACN,YAAY,CAACiB,kBAAkB,CAACX,IAAI,CAAC;IACzD,CAAC,CAAC,OAAOM,CAAC,EAAE;MACV,IAAIJ,OAAO,EACTC,OAAO,CAACI,IAAI,CACV,yDAAyD,EACzDD,CACF,CAAC;MACH,OAAOE,OAAO,CAACC,MAAM,CAACH,CAAC,CAAC;IAC1B;EACF;AACF","ignoreList":[]}
|
|
@@ -48,6 +48,17 @@ export class HMSVirtualBackgroundPlugin extends HMSVideoPlugin {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
function resolveBackground(background) {
|
|
51
|
+
// Check if it's a remote URL with dimensions already provided
|
|
52
|
+
if (typeof background === 'object' && 'uri' in background && background.uri && (background.uri.startsWith('http://') || background.uri.startsWith('https://')) && background.width && background.height) {
|
|
53
|
+
// For remote URLs with dimensions, pass them through directly
|
|
54
|
+
// Don't use Image.resolveAssetSource() as it doesn't handle remote URLs properly
|
|
55
|
+
return {
|
|
56
|
+
type: 'image',
|
|
57
|
+
source: background
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// For bundled assets (require()) or local file:// URLs, use resolveAssetSource
|
|
51
62
|
return {
|
|
52
63
|
type: 'image',
|
|
53
64
|
source: Image.resolveAssetSource(background)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Image","HMSVideoPlugin","HMSVirtualBackgroundPlugin","NAME","constructor","setBlur","blurRadius","data","id","background","type","nativeModule","changeVirtualBackground","setBackground","backgroundImage","resolveBackground","source","resolveAssetSource"],"sourceRoot":"../../src","sources":["HMSVirtualBackgroundPlugin.ts"],"mappings":"AAAA,SAASA,KAAK,QAAQ,cAAc;AAOpC,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,OAAO,MAAMC,0BAA0B,SAASD,cAAc,CAAC;EAC7D,OAAOE,IAAI,GAAG,4BAA4B;EAE1CC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAACF,0BAA0B,CAACC,IAAI,CAAC;EACxC;;EAEA;AACF;AACA;AACA;EACEE,OAAOA,CAACC,UAAkB,EAAoB;IAC5C,MAAMC,IAAI,GAAG;MACXC,EAAE,EAAE,OAAO;MACXC,UAAU,EAAE;QAAEC,IAAI,EAAE,MAAM;QAAEJ;MAAW;IACzC,CAAC;IACD,OAAO,IAAI,CAACK,YAAY,CAACC,uBAAuB,CAACL,IAAI,CAAC;EACxD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,aAAaA,CACXC,eAAoD,EAClC;IAClB,MAAML,UAAU,GAAGM,iBAAiB,CAACD,eAAe,CAAC;IACrD,MAAMP,IAAI,GAAG;MACXC,EAAE,EAAE,OAAO;MACXC;IACF,CAAC;IACD,OAAO,IAAI,CAACE,YAAY,CAACC,uBAAuB,CAACL,IAAI,CAAC;EACxD;AACF;AAEA,SAASQ,iBAAiBA,CAACN,UAA+C,EAGxE;EACA,OAAO;IACLC,IAAI,EAAE,OAAO;
|
|
1
|
+
{"version":3,"names":["Image","HMSVideoPlugin","HMSVirtualBackgroundPlugin","NAME","constructor","setBlur","blurRadius","data","id","background","type","nativeModule","changeVirtualBackground","setBackground","backgroundImage","resolveBackground","uri","startsWith","width","height","source","resolveAssetSource"],"sourceRoot":"../../src","sources":["HMSVirtualBackgroundPlugin.ts"],"mappings":"AAAA,SAASA,KAAK,QAAQ,cAAc;AAOpC,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,OAAO,MAAMC,0BAA0B,SAASD,cAAc,CAAC;EAC7D,OAAOE,IAAI,GAAG,4BAA4B;EAE1CC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAACF,0BAA0B,CAACC,IAAI,CAAC;EACxC;;EAEA;AACF;AACA;AACA;EACEE,OAAOA,CAACC,UAAkB,EAAoB;IAC5C,MAAMC,IAAI,GAAG;MACXC,EAAE,EAAE,OAAO;MACXC,UAAU,EAAE;QAAEC,IAAI,EAAE,MAAM;QAAEJ;MAAW;IACzC,CAAC;IACD,OAAO,IAAI,CAACK,YAAY,CAACC,uBAAuB,CAACL,IAAI,CAAC;EACxD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,aAAaA,CACXC,eAAoD,EAClC;IAClB,MAAML,UAAU,GAAGM,iBAAiB,CAACD,eAAe,CAAC;IACrD,MAAMP,IAAI,GAAG;MACXC,EAAE,EAAE,OAAO;MACXC;IACF,CAAC;IACD,OAAO,IAAI,CAACE,YAAY,CAACC,uBAAuB,CAACL,IAAI,CAAC;EACxD;AACF;AAEA,SAASQ,iBAAiBA,CAACN,UAA+C,EAGxE;EACA;EACA,IACE,OAAOA,UAAU,KAAK,QAAQ,IAC9B,KAAK,IAAIA,UAAU,IACnBA,UAAU,CAACO,GAAG,KACbP,UAAU,CAACO,GAAG,CAACC,UAAU,CAAC,SAAS,CAAC,IAAIR,UAAU,CAACO,GAAG,CAACC,UAAU,CAAC,UAAU,CAAC,CAAC,IAC/ER,UAAU,CAACS,KAAK,IAChBT,UAAU,CAACU,MAAM,EACjB;IACA;IACA;IACA,OAAO;MACLT,IAAI,EAAE,OAAO;MACbU,MAAM,EAAEX;IACV,CAAC;EACH;;EAEA;EACA,OAAO;IACLC,IAAI,EAAE,OAAO;IACbU,MAAM,EAAEpB,KAAK,CAACqB,kBAAkB,CAACZ,UAAU;EAC7C,CAAC;AACH","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@100mslive/react-native-video-plugin",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "HMSSDK now provides support for Virtual Background using @100mslive/react-native-video-plugin. It allows users to change their background during a call. Users can choose from a variety of backgrounds or upload their own custom background. It also provides a feature to blur the background.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -32,8 +32,7 @@
|
|
|
32
32
|
"typecheck": "tsc --noEmit",
|
|
33
33
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
34
34
|
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
|
|
35
|
-
"prepack": "bob build"
|
|
36
|
-
"release": "release-it"
|
|
35
|
+
"prepack": "bob build"
|
|
37
36
|
},
|
|
38
37
|
"keywords": [
|
|
39
38
|
"react-native",
|
|
@@ -115,7 +114,7 @@
|
|
|
115
114
|
"type": "git",
|
|
116
115
|
"url": "git+https://github.com/100mslive/react-native-video-plugin.git"
|
|
117
116
|
},
|
|
118
|
-
"author": "
|
|
117
|
+
"author": "Yogesh Singh (https://www.100ms.live/)",
|
|
119
118
|
"license": "MIT",
|
|
120
119
|
"bugs": {
|
|
121
120
|
"url": "https://github.com/100mslive/react-native-video-plugin/issues"
|
|
@@ -125,14 +124,13 @@
|
|
|
125
124
|
"registry": "https://registry.npmjs.org/"
|
|
126
125
|
},
|
|
127
126
|
"devDependencies": {
|
|
128
|
-
"@100mslive/react-native-hms": "
|
|
127
|
+
"@100mslive/react-native-hms": "1.12.0",
|
|
129
128
|
"@commitlint/config-conventional": "^17.0.2",
|
|
130
129
|
"@evilmartians/lefthook": "^1.5.0",
|
|
131
|
-
"@react-native/babel-preset": "
|
|
132
|
-
"@react-native/eslint-config": "
|
|
133
|
-
"@release-it/conventional-changelog": "^5.0.0",
|
|
130
|
+
"@react-native/babel-preset": "0.78.1",
|
|
131
|
+
"@react-native/eslint-config": "0.78.1",
|
|
134
132
|
"@types/jest": "^29.5.5",
|
|
135
|
-
"@types/react": "^
|
|
133
|
+
"@types/react": "^19.0.6",
|
|
136
134
|
"commitlint": "^17.0.2",
|
|
137
135
|
"del-cli": "^5.1.0",
|
|
138
136
|
"eslint": "^8.51.0",
|
|
@@ -140,25 +138,25 @@
|
|
|
140
138
|
"eslint-plugin-prettier": "^5.0.1",
|
|
141
139
|
"jest": "^29.7.0",
|
|
142
140
|
"prettier": "^3.0.3",
|
|
143
|
-
"react": "
|
|
144
|
-
"react-native": "0.
|
|
141
|
+
"react": "19.0.0",
|
|
142
|
+
"react-native": "0.78.1",
|
|
145
143
|
"react-native-builder-bob": "^0.20.0",
|
|
146
|
-
"release-it": "^15.0.0",
|
|
147
144
|
"turbo": "^1.10.7",
|
|
148
|
-
"typescript": "^5.
|
|
145
|
+
"typescript": "^5.7.3"
|
|
149
146
|
},
|
|
150
147
|
"resolutions": {
|
|
151
|
-
"@types/react": "^
|
|
148
|
+
"@types/react": "^19.0.6",
|
|
149
|
+
"image-size": "1.1.1"
|
|
152
150
|
},
|
|
153
151
|
"peerDependencies": {
|
|
154
|
-
"@100mslive/react-native-hms": "
|
|
152
|
+
"@100mslive/react-native-hms": "1.12.0",
|
|
155
153
|
"react": "*",
|
|
156
154
|
"react-native": "*"
|
|
157
155
|
},
|
|
158
156
|
"workspaces": [
|
|
159
157
|
"example"
|
|
160
158
|
],
|
|
161
|
-
"packageManager": "yarn@
|
|
159
|
+
"packageManager": "yarn@4.10.3",
|
|
162
160
|
"jest": {
|
|
163
161
|
"preset": "react-native",
|
|
164
162
|
"modulePathIgnorePatterns": [
|
|
@@ -171,23 +169,6 @@
|
|
|
171
169
|
"@commitlint/config-conventional"
|
|
172
170
|
]
|
|
173
171
|
},
|
|
174
|
-
"release-it": {
|
|
175
|
-
"git": {
|
|
176
|
-
"commitMessage": "chore: release ${version}",
|
|
177
|
-
"tagName": "v${version}"
|
|
178
|
-
},
|
|
179
|
-
"npm": {
|
|
180
|
-
"publish": true
|
|
181
|
-
},
|
|
182
|
-
"github": {
|
|
183
|
-
"release": true
|
|
184
|
-
},
|
|
185
|
-
"plugins": {
|
|
186
|
-
"@release-it/conventional-changelog": {
|
|
187
|
-
"preset": "angular"
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
},
|
|
191
172
|
"eslintConfig": {
|
|
192
173
|
"root": true,
|
|
193
174
|
"extends": [
|
package/sdk-versions.json
CHANGED
package/src/HMSVideoPlugin.ts
CHANGED
|
@@ -29,7 +29,7 @@ export class HMSVideoPlugin {
|
|
|
29
29
|
console.log('#Function HMSVirtualBackgroundPlugin#enable', data);
|
|
30
30
|
|
|
31
31
|
try {
|
|
32
|
-
return this.nativeModule.enableVideoPlugin(data);
|
|
32
|
+
return await this.nativeModule.enableVideoPlugin(data);
|
|
33
33
|
} catch (e) {
|
|
34
34
|
if (__DEV__)
|
|
35
35
|
console.warn(
|
|
@@ -50,7 +50,7 @@ export class HMSVideoPlugin {
|
|
|
50
50
|
console.log('#Function HMSVirtualBackgroundPlugin#disable', data);
|
|
51
51
|
|
|
52
52
|
try {
|
|
53
|
-
return this.nativeModule.disableVideoPlugin(data);
|
|
53
|
+
return await this.nativeModule.disableVideoPlugin(data);
|
|
54
54
|
} catch (e) {
|
|
55
55
|
if (__DEV__)
|
|
56
56
|
console.warn(
|
|
@@ -57,8 +57,26 @@ export class HMSVirtualBackgroundPlugin extends HMSVideoPlugin {
|
|
|
57
57
|
|
|
58
58
|
function resolveBackground(background: ImageURISource | ImageRequireSource): {
|
|
59
59
|
type: 'image';
|
|
60
|
-
source: ImageResolvedAssetSource;
|
|
60
|
+
source: ImageResolvedAssetSource | ImageURISource;
|
|
61
61
|
} {
|
|
62
|
+
// Check if it's a remote URL with dimensions already provided
|
|
63
|
+
if (
|
|
64
|
+
typeof background === 'object' &&
|
|
65
|
+
'uri' in background &&
|
|
66
|
+
background.uri &&
|
|
67
|
+
(background.uri.startsWith('http://') || background.uri.startsWith('https://')) &&
|
|
68
|
+
background.width &&
|
|
69
|
+
background.height
|
|
70
|
+
) {
|
|
71
|
+
// For remote URLs with dimensions, pass them through directly
|
|
72
|
+
// Don't use Image.resolveAssetSource() as it doesn't handle remote URLs properly
|
|
73
|
+
return {
|
|
74
|
+
type: 'image',
|
|
75
|
+
source: background as ImageURISource,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// For bundled assets (require()) or local file:// URLs, use resolveAssetSource
|
|
62
80
|
return {
|
|
63
81
|
type: 'image',
|
|
64
82
|
source: Image.resolveAssetSource(background),
|