@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 CHANGED
@@ -1,9 +1,45 @@
1
1
  # @100mslive/react-native-video-plugin
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/@100mslive/react-native-video-plugin)](https://www.npmjs.com/package/@100mslive/react-native-video-plugin)
4
+ [![Build](https://github.com/100mslive/100ms-react-native/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/100mslive/100ms-react-native/actions/workflows/build.yml)
5
+ [![license](https://img.shields.io/npm/l/@100mslive/react-native-hms)](https://www.100ms.live/)
6
+ [![quality](https://img.shields.io/npms-io/quality-score/@100mslive/react-native-hms)](https://www.npmjs.com/package/@100mslive/react-native-hms)
7
+ [![collaborators](https://img.shields.io/npm/collaborators/@100mslive/react-native-hms)](https://www.npmjs.com/package/@100mslive/react-native-hms)
8
+ [![Documentation](https://img.shields.io/badge/Read-Documentation-blue)](https://docs.100ms.live/react-native/v2/foundation/basics)
9
+ [![Discord](https://img.shields.io/discord/843749923060711464?label=Join%20on%20Discord)](https://100ms.live/discord)
10
+ [![Firebase](https://img.shields.io/badge/Download%20Android-Firebase-green)](https://appdistribution.firebase.dev/i/7b7ab3b30e627c35)
11
+ [![TestFlight](https://img.shields.io/badge/Download%20iOS-TestFlight-blue)](https://testflight.apple.com/join/v4bSIPad)
12
+ [![Activity](https://img.shields.io/github/commit-activity/m/100mslive/react-native-hms.svg)](https://github.com/100mslive/100ms-react-native/projects?type=classic)
13
+ [![Register](https://img.shields.io/badge/Contact-Know%20More-blue)](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 | [![npm](https://img.shields.io/npm/v/@100mslive/react-native-room-kit)](https://www.npmjs.com/package/@100mslive/react-native-room-kit) |
39
+ | @100mslive/react-native-hms | [![npm](https://img.shields.io/npm/v/@100mslive/react-native-hms)](https://www.npmjs.com/package/@100mslive/react-native-hms) |
40
+ | @100mslive/react-native-video-plugin | [![npm](https://img.shields.io/npm/v/@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`
@@ -12,7 +12,7 @@ buildscript {
12
12
  }
13
13
 
14
14
  dependencies {
15
- classpath "com.android.tools.build:gradle:7.2.1"
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
- lintOptions {
74
+ lint {
75
75
  disable "GradleCompatible"
76
76
  }
77
77
 
78
78
  compileOptions {
79
- sourceCompatibility JavaVersion.VERSION_1_8
80
- targetCompatibility JavaVersion.VERSION_1_8
79
+ sourceCompatibility JavaVersion.VERSION_17
80
+ targetCompatibility JavaVersion.VERSION_17
81
81
  }
82
82
  }
83
83
 
@@ -1,5 +1,5 @@
1
- ReactNativeVideoPlugin_kotlinVersion=1.7.0
2
- ReactNativeVideoPlugin_minSdkVersion=21
3
- ReactNativeVideoPlugin_targetSdkVersion=31
4
- ReactNativeVideoPlugin_compileSdkVersion=31
5
- ReactNativeVideoPlugin_ndkversion=21.4.7075529
1
+ ReactNativeVideoPlugin_kotlinVersion=2.0.21
2
+ ReactNativeVideoPlugin_minSdkVersion=24
3
+ ReactNativeVideoPlugin_targetSdkVersion=35
4
+ ReactNativeVideoPlugin_compileSdkVersion=35
5
+ ReactNativeVideoPlugin_ndkversion=27.1.12297006
@@ -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;IAClD,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,IAAI,CAACP,YAAY,CAACkB,kBAAkB,CAACX,IAAI,CAAC;IACnD,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":[]}
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;IACbO,MAAM,EAAEC,kBAAK,CAACC,kBAAkB,CAACV,UAAU;EAC7C,CAAC;AACH","ignoreList":[]}
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;IAClD,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,IAAI,CAACN,YAAY,CAACiB,kBAAkB,CAACX,IAAI,CAAC;IACnD,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":[]}
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;IACbM,MAAM,EAAEhB,KAAK,CAACiB,kBAAkB,CAACR,UAAU;EAC7C,CAAC;AACH","ignoreList":[]}
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": "0.1.2",
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": "Jatin Nagar <jatin.nagar@100ms.live> (https://www.100ms.live/), Yogesh <yogesh@100ms.live> (https://www.100ms.live/)",
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": "^1.10.6",
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": "^0.73.1",
132
- "@react-native/eslint-config": "^0.73.1",
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": "^18.2.44",
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": "18.2.0",
144
- "react-native": "0.71.19",
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.2.2"
145
+ "typescript": "^5.7.3"
149
146
  },
150
147
  "resolutions": {
151
- "@types/react": "^18.2.44"
148
+ "@types/react": "^19.0.6",
149
+ "image-size": "1.1.1"
152
150
  },
153
151
  "peerDependencies": {
154
- "@100mslive/react-native-hms": "^1.10.6",
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@3.6.1",
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
@@ -1,3 +1,3 @@
1
1
  {
2
- "android": "2.9.59"
2
+ "android": "2.9.78"
3
3
  }
@@ -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),