@100mslive/react-native-hms 1.6.2 → 1.7.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.
Files changed (210) hide show
  1. package/android/build.gradle +16 -8
  2. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +14 -15
  3. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +248 -0
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +101 -0
  5. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +10 -5
  6. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +0 -14
  7. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +79 -103
  8. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -1
  9. package/android/src/main/res/layout/player_view.xml +9 -0
  10. package/ios/HMSDecoder.swift +4 -4
  11. package/ios/HMSHLSPlayerManager.m +22 -0
  12. package/ios/HMSHLSPlayerManager.swift +368 -0
  13. package/ios/HMSManager.m +1 -2
  14. package/ios/HMSManager.swift +22 -16
  15. package/ios/HMSRNSDK.swift +30 -81
  16. package/lib/commonjs/classes/HMSEncoder.js +11 -4
  17. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  18. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  19. package/lib/commonjs/classes/HMSPeer.js +55 -20
  20. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  21. package/lib/commonjs/classes/HMSPeerUpdate.js +1 -1
  22. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  23. package/lib/commonjs/classes/HMSPeersCache.js +30 -38
  24. package/lib/commonjs/classes/HMSPeersCache.js.map +1 -1
  25. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  26. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  27. package/lib/commonjs/classes/HMSSDK.js +30 -30
  28. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  29. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +147 -0
  30. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -0
  31. package/lib/commonjs/components/HMSHLSPlayer/RCTHMSHLSPlayer.js +12 -0
  32. package/lib/commonjs/components/HMSHLSPlayer/RCTHMSHLSPlayer.js.map +1 -0
  33. package/lib/commonjs/components/HMSHLSPlayer/hooks.js +71 -0
  34. package/lib/commonjs/components/HMSHLSPlayer/hooks.js.map +1 -0
  35. package/lib/commonjs/components/HMSHLSPlayer/index.js +63 -0
  36. package/lib/commonjs/components/HMSHLSPlayer/index.js.map +1 -0
  37. package/lib/commonjs/index.js +38 -0
  38. package/lib/commonjs/index.js.map +1 -1
  39. package/lib/commonjs/stores/hls-player-playback-slice.js +23 -0
  40. package/lib/commonjs/stores/hls-player-playback-slice.js.map +1 -0
  41. package/lib/commonjs/stores/hls-player-stats-store.js +36 -0
  42. package/lib/commonjs/stores/hls-player-stats-store.js.map +1 -0
  43. package/lib/commonjs/stores/hms-store.js +16 -0
  44. package/lib/commonjs/stores/hms-store.js.map +1 -0
  45. package/lib/commonjs/stores/types.js +6 -0
  46. package/lib/commonjs/stores/types.js.map +1 -0
  47. package/lib/commonjs/types.js +36 -0
  48. package/lib/commonjs/types.js.map +1 -0
  49. package/lib/module/classes/HMSEncoder.js +11 -4
  50. package/lib/module/classes/HMSEncoder.js.map +1 -1
  51. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  52. package/lib/module/classes/HMSPeer.js +55 -20
  53. package/lib/module/classes/HMSPeer.js.map +1 -1
  54. package/lib/module/classes/HMSPeerUpdate.js +1 -1
  55. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  56. package/lib/module/classes/HMSPeersCache.js +30 -38
  57. package/lib/module/classes/HMSPeersCache.js.map +1 -1
  58. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  59. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  60. package/lib/module/classes/HMSSDK.js +30 -30
  61. package/lib/module/classes/HMSSDK.js.map +1 -1
  62. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +138 -0
  63. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -0
  64. package/lib/module/components/HMSHLSPlayer/RCTHMSHLSPlayer.js +4 -0
  65. package/lib/module/components/HMSHLSPlayer/RCTHMSHLSPlayer.js.map +1 -0
  66. package/lib/module/components/HMSHLSPlayer/hooks.js +56 -0
  67. package/lib/module/components/HMSHLSPlayer/hooks.js.map +1 -0
  68. package/lib/module/components/HMSHLSPlayer/index.js +3 -0
  69. package/lib/module/components/HMSHLSPlayer/index.js.map +1 -0
  70. package/lib/module/index.js +7 -0
  71. package/lib/module/index.js.map +1 -1
  72. package/lib/module/stores/hls-player-playback-slice.js +16 -0
  73. package/lib/module/stores/hls-player-playback-slice.js.map +1 -0
  74. package/lib/module/stores/hls-player-stats-store.js +29 -0
  75. package/lib/module/stores/hls-player-stats-store.js.map +1 -0
  76. package/lib/module/stores/hms-store.js +9 -0
  77. package/lib/module/stores/hms-store.js.map +1 -0
  78. package/lib/module/stores/types.js +2 -0
  79. package/lib/module/stores/types.js.map +1 -0
  80. package/lib/module/types.js +32 -0
  81. package/lib/module/types.js.map +1 -0
  82. package/lib/typescript/classes/HMSEncoder.d.ts +1 -0
  83. package/lib/typescript/classes/HMSLocalPeer.d.ts +0 -1
  84. package/lib/typescript/classes/HMSPeer.d.ts +10 -5
  85. package/lib/typescript/classes/HMSPeersCache.d.ts +17 -2
  86. package/lib/typescript/classes/HMSRTMPConfig.d.ts +2 -2
  87. package/lib/typescript/classes/HMSRemotePeer.d.ts +0 -1
  88. package/lib/typescript/classes/HMSSDK.d.ts +3 -14
  89. package/lib/typescript/components/HMSHLSPlayer/HMSHLSPlayer.d.ts +21 -0
  90. package/lib/typescript/components/HMSHLSPlayer/RCTHMSHLSPlayer.d.ts +19 -0
  91. package/lib/typescript/components/HMSHLSPlayer/hooks.d.ts +17 -0
  92. package/lib/typescript/components/HMSHLSPlayer/index.d.ts +2 -0
  93. package/lib/typescript/index.d.ts +3 -0
  94. package/lib/typescript/stores/hls-player-playback-slice.d.ts +5 -0
  95. package/lib/typescript/stores/hls-player-stats-store.d.ts +9 -0
  96. package/lib/typescript/stores/hms-store.d.ts +9 -0
  97. package/lib/typescript/stores/types.d.ts +25 -0
  98. package/lib/typescript/types.d.ts +63 -0
  99. package/package.json +4 -1
  100. package/react-native-hms.podspec +1 -0
  101. package/sdk-versions.json +3 -2
  102. package/src/classes/HMSEncoder.ts +14 -3
  103. package/src/classes/HMSLocalPeer.ts +0 -1
  104. package/src/classes/HMSPeer.ts +96 -48
  105. package/src/classes/HMSPeerUpdate.ts +4 -4
  106. package/src/classes/HMSPeersCache.ts +53 -40
  107. package/src/classes/HMSRTMPConfig.ts +2 -2
  108. package/src/classes/HMSRemotePeer.ts +0 -1
  109. package/src/classes/HMSSDK.tsx +33 -30
  110. package/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +235 -0
  111. package/src/components/HMSHLSPlayer/RCTHMSHLSPlayer.ts +38 -0
  112. package/src/components/HMSHLSPlayer/hooks.ts +100 -0
  113. package/src/components/HMSHLSPlayer/index.ts +9 -0
  114. package/src/index.ts +8 -0
  115. package/src/stores/hls-player-playback-slice.ts +25 -0
  116. package/src/stores/hls-player-stats-store.ts +37 -0
  117. package/src/stores/hms-store.ts +11 -0
  118. package/src/stores/types.ts +49 -0
  119. package/src/types.ts +119 -0
  120. package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
  121. package/android/.gradle/6.9/fileChanges/last-build.bin +0 -0
  122. package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
  123. package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
  124. package/android/.gradle/6.9/gc.properties +0 -0
  125. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  126. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  127. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  128. package/android/.gradle/checksums/checksums.lock +0 -0
  129. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  130. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  131. package/android/.gradle/vcs-1/gc.properties +0 -0
  132. package/android/.idea/compiler.xml +0 -6
  133. package/android/.idea/gradle.xml +0 -18
  134. package/android/.idea/jarRepositories.xml +0 -50
  135. package/android/.idea/libraries/Gradle__androidx_activity_activity_1_2_4_aar.xml +0 -16
  136. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_3_0.xml +0 -11
  137. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml +0 -13
  138. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_4_1_aar.xml +0 -16
  139. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_4_1_aar.xml +0 -13
  140. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +0 -11
  141. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +0 -13
  142. package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +0 -16
  143. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +0 -11
  144. package/android/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_1_3_aar.xml +0 -13
  145. package/android/.idea/libraries/Gradle__androidx_core_core_1_7_0_aar.xml +0 -16
  146. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -13
  147. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -13
  148. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -16
  149. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_3_6_aar.xml +0 -16
  150. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -13
  151. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_4_0.xml +0 -11
  152. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +0 -13
  153. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml +0 -13
  154. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml +0 -13
  155. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml +0 -13
  156. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml +0 -13
  157. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -13
  158. package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml +0 -13
  159. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -16
  160. package/android/.idea/libraries/Gradle__androidx_tracing_tracing_1_1_0_aar.xml +0 -13
  161. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +0 -13
  162. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +0 -13
  163. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml +0 -13
  164. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -13
  165. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_0_3_0_aar.xml +0 -14
  166. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +0 -15
  167. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +0 -18
  168. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +0 -18
  169. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +0 -18
  170. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +0 -18
  171. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +0 -15
  172. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +0 -15
  173. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +0 -15
  174. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +0 -15
  175. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +0 -15
  176. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +0 -15
  177. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +0 -15
  178. package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +0 -15
  179. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml +0 -13
  180. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_71_0_rc_0_debug_aar.xml +0 -14
  181. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_4.xml +0 -13
  182. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_4.xml +0 -13
  183. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_4_aar.xml +0 -14
  184. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +0 -13
  185. package/android/.idea/libraries/Gradle__com_github_100mslive_android_sdk_lib_2_5_1_aar.xml +0 -10
  186. package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m104_hms_1_3_aar.xml +0 -10
  187. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +0 -13
  188. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_2.xml +0 -13
  189. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_2.xml +0 -13
  190. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +0 -13
  191. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
  192. package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +0 -13
  193. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +0 -13
  194. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_10.xml +0 -13
  195. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_10.xml +0 -13
  196. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_10.xml +0 -13
  197. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_10.xml +0 -13
  198. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_6_0.xml +0 -13
  199. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_6_0.xml +0 -13
  200. package/android/.idea/misc.xml +0 -9
  201. package/android/.idea/modules/android.androidTest.iml +0 -203
  202. package/android/.idea/modules/android.iml +0 -40
  203. package/android/.idea/modules/android.main.iml +0 -199
  204. package/android/.idea/modules/android.unitTest.iml +0 -197
  205. package/android/.idea/modules.xml +0 -11
  206. package/android/.idea/sonarlint/issuestore/3/c/3c46088b6add3088181589d8ed726652742b6221 +0 -5
  207. package/android/.idea/sonarlint/issuestore/a/8/a8c9f5ddd88723818e51ae3cf8693d02355a8691 +0 -0
  208. package/android/.idea/sonarlint/issuestore/f/0/f07866736216be0ee2aba49e392191aeae700a35 +0 -0
  209. package/android/.idea/sonarlint/issuestore/index.pb +0 -7
  210. package/android/.idea/vcs.xml +0 -6
@@ -2,9 +2,9 @@ package com.reactnativehmssdk
2
2
 
3
3
  import android.content.Intent
4
4
  import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
5
- import android.util.Log
6
5
  import com.facebook.react.bridge.*
7
6
  import com.facebook.react.bridge.UiThreadUtil.runOnUiThread
7
+ import com.google.gson.JsonElement
8
8
  import kotlinx.coroutines.launch
9
9
  import live.hms.video.audio.HMSAudioManager
10
10
  import live.hms.video.connection.stats.*
@@ -186,13 +186,8 @@ class HMSRNSDK(
186
186
  if (eventsEnableStatus["3"] != true) {
187
187
  return
188
188
  }
189
- if (type === HMSPeerUpdate.AUDIO_TOGGLED ||
190
- type === HMSPeerUpdate.VIDEO_TOGGLED ||
191
- type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER ||
192
- type === HMSPeerUpdate.NO_DOMINANT_SPEAKER ||
193
- type === HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER ||
194
- type === HMSPeerUpdate.STARTED_SPEAKING ||
195
- type === HMSPeerUpdate.STOPPED_SPEAKING
189
+ if (type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER ||
190
+ type === HMSPeerUpdate.NO_DOMINANT_SPEAKER
196
191
  ) {
197
192
  return
198
193
  }
@@ -321,13 +316,8 @@ class HMSRNSDK(
321
316
  if (eventsEnableStatus["3"] != true) {
322
317
  return
323
318
  }
324
- if (type === HMSPeerUpdate.AUDIO_TOGGLED ||
325
- type === HMSPeerUpdate.VIDEO_TOGGLED ||
326
- type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER ||
327
- type === HMSPeerUpdate.NO_DOMINANT_SPEAKER ||
328
- type === HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER ||
329
- type === HMSPeerUpdate.STARTED_SPEAKING ||
330
- type === HMSPeerUpdate.STOPPED_SPEAKING
319
+ if (type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER ||
320
+ type === HMSPeerUpdate.NO_DOMINANT_SPEAKER
331
321
  ) {
332
322
  return
333
323
  }
@@ -770,24 +760,30 @@ class HMSRNSDK(
770
760
 
771
761
  if (peerId !== null && role !== null) {
772
762
  val hmsPeer = HMSHelper.getPeerFromPeerId(peerId, hmsSDK?.getRoom())
763
+ if (hmsPeer == null) {
764
+ callback?.reject("4000", "PEER_NOT_FOUND")
765
+ return
766
+ }
773
767
  val hmsRole = HMSHelper.getRoleFromRoleName(role, hmsSDK?.getRoles())
774
-
775
- if (hmsRole != null && hmsPeer != null) {
776
- hmsSDK?.changeRole(
777
- hmsPeer,
778
- hmsRole,
779
- force,
780
- object : HMSActionResultListener {
781
- override fun onSuccess() {
782
- callback?.resolve(emitHMSSuccess())
783
- }
784
- override fun onError(error: HMSException) {
785
- self.emitHMSError(error)
786
- callback?.reject(error.code.toString(), error.message)
787
- }
788
- },
789
- )
768
+ if (hmsRole == null) {
769
+ callback?.reject("4000", "ROLE_NOT_FOUND")
770
+ return
790
771
  }
772
+
773
+ hmsSDK?.changeRole(
774
+ hmsPeer,
775
+ hmsRole,
776
+ force,
777
+ object : HMSActionResultListener {
778
+ override fun onSuccess() {
779
+ callback?.resolve(emitHMSSuccess())
780
+ }
781
+ override fun onError(error: HMSException) {
782
+ self.emitHMSError(error)
783
+ callback?.reject(error.code.toString(), error.message)
784
+ }
785
+ },
786
+ )
791
787
  }
792
788
  } else {
793
789
  val errorMessage = "changeRole: $requiredKeys"
@@ -809,24 +805,30 @@ class HMSRNSDK(
809
805
 
810
806
  if (peerId !== null && role !== null) {
811
807
  val hmsPeer = HMSHelper.getPeerFromPeerId(peerId, hmsSDK?.getRoom())
808
+ if (hmsPeer == null) {
809
+ promise?.reject("4000", "PEER_NOT_FOUND")
810
+ return
811
+ }
812
812
  val hmsRole = HMSHelper.getRoleFromRoleName(role, hmsSDK?.getRoles())
813
-
814
- if (hmsRole != null && hmsPeer != null) {
815
- hmsSDK?.changeRoleOfPeer(
816
- hmsPeer,
817
- hmsRole,
818
- force,
819
- object : HMSActionResultListener {
820
- override fun onSuccess() {
821
- promise?.resolve(emitHMSSuccess())
822
- }
823
- override fun onError(error: HMSException) {
824
- self.emitHMSError(error)
825
- promise?.reject(error.code.toString(), error.message)
826
- }
827
- },
828
- )
813
+ if (hmsRole == null) {
814
+ promise?.reject("4000", "ROLE_NOT_FOUND")
815
+ return
829
816
  }
817
+
818
+ hmsSDK?.changeRoleOfPeer(
819
+ hmsPeer,
820
+ hmsRole,
821
+ force,
822
+ object : HMSActionResultListener {
823
+ override fun onSuccess() {
824
+ promise?.resolve(emitHMSSuccess())
825
+ }
826
+ override fun onError(error: HMSException) {
827
+ self.emitHMSError(error)
828
+ promise?.reject(error.code.toString(), error.message)
829
+ }
830
+ },
831
+ )
830
832
  }
831
833
  } else {
832
834
  val errorMessage = "changeRoleOfPeer: $requiredKeys"
@@ -1266,7 +1268,7 @@ class HMSRNSDK(
1266
1268
  val requiredKeys =
1267
1269
  HMSHelper.getUnavailableRequiredKey(
1268
1270
  data,
1269
- arrayOf(Pair("record", "Boolean"), Pair("meetingURL", "String")),
1271
+ arrayOf(Pair("record", "Boolean")),
1270
1272
  )
1271
1273
  if (requiredKeys === null) {
1272
1274
  val config = HMSHelper.getRtmpConfig(data)
@@ -1541,50 +1543,6 @@ class HMSRNSDK(
1541
1543
  }
1542
1544
  }
1543
1545
 
1544
- @Deprecated("SessionMetaData APIs has been deprecated in favour of Session Store APIs", ReplaceWith("setSessionMetadataForKey"), DeprecationLevel.WARNING)
1545
- fun setSessionMetaData(data: ReadableMap, callback: Promise?) {
1546
- if (data.hasKey("sessionMetaData")) {
1547
- val sessionMetaData = data.getString("sessionMetaData")
1548
- hmsSDK?.setSessionMetaData(
1549
- sessionMetaData,
1550
- object : HMSActionResultListener {
1551
- override fun onSuccess() {
1552
- callback?.resolve(emitHMSSuccess())
1553
- }
1554
-
1555
- override fun onError(error: HMSException) {
1556
- callback?.reject(error.code.toString(), error.message)
1557
- self.emitHMSError(error)
1558
- }
1559
- },
1560
- )
1561
- } else {
1562
- val errorMessage = "setSessionMetaData: sessionMetaData_Is_Required"
1563
- self.emitRequiredKeysError(errorMessage)
1564
- rejectCallback(callback, errorMessage)
1565
- }
1566
- }
1567
-
1568
- @Deprecated("SessionMetaData APIs has been deprecated in favour of Session Store APIs", ReplaceWith("getSessionMetadataForKey"), DeprecationLevel.WARNING)
1569
- fun getSessionMetaData(callback: Promise?) {
1570
- hmsSDK?.getSessionMetaData(
1571
- object : HMSSessionMetadataListener {
1572
- override fun onSuccess(sessionMetadata: Any?) {
1573
- if (sessionMetadata is String?) {
1574
- callback?.resolve(sessionMetadata)
1575
- } else {
1576
- callback?.reject("6002", "Session Store: Unsupported type received, only String type is supported")
1577
- }
1578
- }
1579
-
1580
- override fun onError(error: HMSException) {
1581
- callback?.reject(error.code.toString(), error.message)
1582
- self.emitHMSError(error)
1583
- }
1584
- },
1585
- )
1586
- }
1587
-
1588
1546
  fun getPeerProperty(data: ReadableMap): WritableMap? {
1589
1547
  val requiredKeys =
1590
1548
  HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("peerId", "String"), Pair("property", "String")))
@@ -1993,11 +1951,20 @@ class HMSRNSDK(
1993
1951
  override fun onError(error: HMSException) {
1994
1952
  promise?.reject(error.code.toString(), error.message)
1995
1953
  }
1996
- override fun onSuccess(sessionMetadata: Any?) {
1997
- if (sessionMetadata is String?) {
1998
- promise?.resolve(sessionMetadata)
1999
- } else {
2000
- promise?.reject("6002", "Session Store: Unsupported type received for '$key' key, only String type is supported")
1954
+
1955
+ override fun onSuccess(sessionMetadata: JsonElement?) {
1956
+ sessionMetadata.let { sm ->
1957
+ if (sm == null) {
1958
+ promise?.resolve(null)
1959
+ } else {
1960
+ if (sm.isJsonPrimitive) {
1961
+ promise?.resolve(sm.asString)
1962
+ } else if (sm.isJsonNull) {
1963
+ promise?.resolve(null)
1964
+ } else {
1965
+ promise?.resolve(sm.toString())
1966
+ }
1967
+ }
2001
1968
  }
2002
1969
  }
2003
1970
  },
@@ -2023,16 +1990,25 @@ class HMSRNSDK(
2023
1990
  }
2024
1991
 
2025
1992
  val keyChangeListener = object : HMSKeyChangeListener {
2026
- override fun onKeyChanged(key: String, value: Any?) {
1993
+ override fun onKeyChanged(key: String, value: JsonElement?) {
2027
1994
  val map = Arguments.createMap()
2028
1995
  map.putString("id", id)
2029
1996
  map.putString("key", key)
2030
- if (value is String?) {
2031
- map.putString("value", value)
2032
- } else {
2033
- Log.e("HMSRNSDK", "Session Store: '$value' value received for '$key' key, expected only NullableString type for value")
2034
- map.putString("value", null) // resetting value to `null`, as the current type is not supported
1997
+
1998
+ value.let { sm ->
1999
+ if (sm == null) {
2000
+ map.putString("value", null)
2001
+ } else {
2002
+ if (sm.isJsonPrimitive) {
2003
+ map.putString("value", sm.asString)
2004
+ } else if (sm.isJsonNull) {
2005
+ map.putString("value", null)
2006
+ } else {
2007
+ map.putString("value", sm.toString())
2008
+ }
2009
+ }
2035
2010
  }
2011
+
2036
2012
  delegate.emitEvent("ON_SESSION_STORE_CHANGED", map)
2037
2013
  }
2038
2014
  }
@@ -11,6 +11,6 @@ class HmssdkPackage : ReactPackage {
11
11
  }
12
12
 
13
13
  override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
14
- return listOf<ViewManager<*, *>>(HMSSDKViewManager())
14
+ return listOf<ViewManager<*, *>>(HMSSDKViewManager(), HMSHLSPlayerManager())
15
15
  }
16
16
  }
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+
3
+ <androidx.media3.ui.PlayerView xmlns:android="http://schemas.android.com/apk/res/android"
4
+ xmlns:tools="http://schemas.android.com/tools"
5
+ android:id="@+id/hls_view"
6
+ android:layout_width="match_parent"
7
+ android:layout_height="wrap_content"
8
+ android:layout_gravity="center"
9
+ />
@@ -90,10 +90,10 @@ class HMSDecoder: NSObject {
90
90
  switch peerUpdateType {
91
91
  case .peerJoined: return "0"
92
92
  case .peerLeft: return "1"
93
- case .roleUpdated: return "9"
94
- case .nameUpdated: return "10"
95
- case .metadataUpdated: return "11"
96
- case .networkQualityUpdated: return "12"
93
+ case .roleUpdated: return "4"
94
+ case .nameUpdated: return "5"
95
+ case .metadataUpdated: return "6"
96
+ case .networkQualityUpdated: return "7"
97
97
  default: return nil
98
98
  }
99
99
  }
@@ -0,0 +1,22 @@
1
+
2
+ #import "React/RCTViewManager.h"
3
+ #import <Foundation/Foundation.h>
4
+
5
+ @interface RCT_EXTERN_MODULE(HMSHLSPlayerManager, RCTViewManager)
6
+
7
+ RCT_EXPORT_VIEW_PROPERTY(url, NSString);
8
+ RCT_EXPORT_VIEW_PROPERTY(enableStats, BOOL);
9
+ RCT_EXPORT_VIEW_PROPERTY(enableControls, BOOL);
10
+ RCT_EXPORT_VIEW_PROPERTY(onHmsHlsPlaybackEvent, RCTDirectEventBlock);
11
+ RCT_EXPORT_VIEW_PROPERTY(onHmsHlsStatsEvent, RCTDirectEventBlock);
12
+
13
+ RCT_EXTERN_METHOD(play:(nonnull NSNumber *)node url:(nullable NSString *)url)
14
+ RCT_EXTERN_METHOD(stop:(nonnull NSNumber *)node)
15
+ RCT_EXTERN_METHOD(pause:(nonnull NSNumber *)node)
16
+ RCT_EXTERN_METHOD(resume:(nonnull NSNumber *)node)
17
+ RCT_EXTERN_METHOD(seekToLivePosition:(nonnull NSNumber *)node)
18
+ RCT_EXTERN_METHOD(seekForward:(nonnull NSNumber *)node seconds:(nonnull NSNumber *)seconds)
19
+ RCT_EXTERN_METHOD(seekBackward:(nonnull NSNumber *)node seconds:(nonnull NSNumber *)seconds)
20
+ RCT_EXTERN_METHOD(setVolume:(nonnull NSNumber *)node level:(nonnull NSNumber *)level)
21
+
22
+ @end
@@ -0,0 +1,368 @@
1
+ import HMSSDK
2
+ import HMSHLSPlayerSDK
3
+ import AVKit.AVPlayerViewController
4
+
5
+ typealias HmsHlsPlayer = HMSHLSPlayerSDK.HMSHLSPlayer
6
+
7
+ @objc(HMSHLSPlayerManager)
8
+ class HMSHLSPlayerManager: RCTViewManager {
9
+ override func view() -> (HMSHLSPlayer) {
10
+ let view = HMSHLSPlayer()
11
+ let hms = getHmsFromBridge()
12
+
13
+ view.setHms(hms)
14
+
15
+ return view
16
+ }
17
+
18
+ func getHmsFromBridge() -> [String: HMSRNSDK] {
19
+ let collection = (bridge.module(for: HMSManager.classForCoder()) as? HMSManager)?.hmsCollection ?? [String: HMSRNSDK]()
20
+ return collection
21
+ }
22
+
23
+ override class func requiresMainQueueSetup() -> Bool {
24
+ true
25
+ }
26
+
27
+ @objc func play(_ node: NSNumber, url: String? = nil) {
28
+ DispatchQueue.main.async {
29
+ if let component = self.bridge.uiManager.view(forReactTag: node) as? HMSHLSPlayer {
30
+ component.play(url)
31
+ }
32
+ }
33
+ }
34
+
35
+ @objc func stop(_ node: NSNumber) {
36
+ DispatchQueue.main.async {
37
+ if let component = self.bridge.uiManager.view(forReactTag: node) as? HMSHLSPlayer {
38
+ component.stop()
39
+ }
40
+ }
41
+ }
42
+
43
+ @objc func pause(_ node: NSNumber) {
44
+ DispatchQueue.main.async {
45
+ if let component = self.bridge.uiManager.view(forReactTag: node) as? HMSHLSPlayer {
46
+ component.pause()
47
+ }
48
+ }
49
+ }
50
+
51
+ @objc func resume(_ node: NSNumber) {
52
+ DispatchQueue.main.async {
53
+ if let component = self.bridge.uiManager.view(forReactTag: node) as? HMSHLSPlayer {
54
+ component.resume()
55
+ }
56
+ }
57
+ }
58
+
59
+ @objc func seekToLivePosition(_ node: NSNumber) {
60
+ DispatchQueue.main.async {
61
+ if let component = self.bridge.uiManager.view(forReactTag: node) as? HMSHLSPlayer {
62
+ component.seekToLivePosition()
63
+ }
64
+ }
65
+ }
66
+
67
+ @objc func seekForward(_ node: NSNumber, seconds: NSNumber) {
68
+ DispatchQueue.main.async {
69
+ if let component = self.bridge.uiManager.view(forReactTag: node) as? HMSHLSPlayer {
70
+ component.seekForward(Double(truncating: seconds))
71
+ }
72
+ }
73
+ }
74
+
75
+ @objc func seekBackward(_ node: NSNumber, seconds: NSNumber) {
76
+ DispatchQueue.main.async {
77
+ if let component = self.bridge.uiManager.view(forReactTag: node) as? HMSHLSPlayer {
78
+ component.seekBackward(Double(truncating: seconds))
79
+ }
80
+ }
81
+ }
82
+
83
+ @objc func setVolume(_ node: NSNumber, level: NSNumber) {
84
+ DispatchQueue.main.async {
85
+ if let component = self.bridge.uiManager.view(forReactTag: node) as? HMSHLSPlayer {
86
+ component.setVolume(Int(truncating: level))
87
+ }
88
+ }
89
+ }
90
+ }
91
+
92
+ class HMSHLSPlayer: UIView {
93
+ // MARK: class instance properties
94
+ var hlsStatsTimerRef: Timer?
95
+ var eventController: HLSPlaybackEventController?
96
+ var hmsHLSPlayerViewController: AVPlayerViewController?
97
+ lazy var hmsHLSPlayer = HmsHlsPlayer()
98
+
99
+ // MARK: Handle HMSRNSDK Instance in HMSHLSPlayer instance
100
+ var hmsCollection = [String: HMSRNSDK]()
101
+
102
+ func setHms(_ hmsInstance: [String: HMSRNSDK]) {
103
+ hmsCollection = hmsInstance
104
+ }
105
+
106
+ // MARK: Handle HMSHLSPlayer RN Component props
107
+
108
+ @objc var onHmsHlsPlaybackEvent: RCTDirectEventBlock?
109
+
110
+ @objc var onHmsHlsStatsEvent: RCTDirectEventBlock?
111
+
112
+ @objc var url: String? {
113
+ didSet {
114
+ play(url)
115
+ }
116
+ }
117
+
118
+ @objc var enableStats: Bool = false {
119
+ didSet {
120
+ if enableStats == true {
121
+ attachHLSPlayerStatsListener()
122
+ } else {
123
+ // If we have existing Stats Timer, Invalidate it
124
+ if let hlsStatsTimer = hlsStatsTimerRef {
125
+ hlsStatsTimer.invalidate()
126
+ hlsStatsTimerRef = nil
127
+ }
128
+ }
129
+ }
130
+ }
131
+
132
+ @objc var enableControls: Bool = true {
133
+ didSet {
134
+ hmsHLSPlayerViewController?.showsPlaybackControls = enableControls
135
+ }
136
+ }
137
+
138
+ // MARK: Handle HMSHLSPlayer RN Component methods
139
+
140
+ @objc func play(_ url: String?) {
141
+ if let validURLString = url, !validURLString.isEmpty {
142
+ if let urlInstance = URL(string: validURLString) {
143
+ hmsHLSPlayer.play(urlInstance)
144
+ }
145
+ return
146
+ }
147
+
148
+ guard let hlsStreamingState = hmsCollection["12345"]?.hms?.room?.hlsStreamingState else {
149
+ return
150
+ }
151
+
152
+ if hlsStreamingState.running && !hlsStreamingState.variants.isEmpty {
153
+ hmsHLSPlayer.play(hlsStreamingState.variants[0].meetingURL)
154
+ }
155
+ }
156
+
157
+ @objc func stop() {
158
+ hmsHLSPlayer.stop()
159
+ }
160
+
161
+ @objc func pause() {
162
+ hmsHLSPlayer.pause()
163
+ }
164
+
165
+ @objc func resume() {
166
+ hmsHLSPlayer.resume()
167
+ }
168
+
169
+ @objc func seekForward(_ seconds: Double) {
170
+ hmsHLSPlayer.seekForward(seconds: seconds)
171
+ }
172
+
173
+ @objc func seekBackward(_ seconds: Double) {
174
+ hmsHLSPlayer.seekBackward(seconds: seconds)
175
+ }
176
+
177
+ @objc func seekToLivePosition() {
178
+ hmsHLSPlayer.seekToLivePosition()
179
+ }
180
+
181
+ @objc func setVolume(_ level: Int) {
182
+ hmsHLSPlayer.volume = level
183
+ }
184
+
185
+ // MARK: Constructor & Deconstructor
186
+
187
+ override init(frame: CGRect) {
188
+ super.init(frame: frame)
189
+
190
+ // setting properties on current UIView
191
+ self.frame = frame
192
+ self.backgroundColor = UIColor(displayP3Red: 0, green: 0, blue: 0, alpha: 1)
193
+
194
+ // creating 100ms HLS Player and getting player view controller
195
+ let playerViewController = hmsHLSPlayer.videoPlayerViewController(showsPlayerControls: false)
196
+ hmsHLSPlayerViewController = playerViewController
197
+ playerViewController.view.frame = self.bounds
198
+
199
+ // Setting 100ms HLS Player as subview of current UIView
200
+ self.addSubview(playerViewController.view)
201
+
202
+ attachPlayerPlaybackListeners()
203
+ }
204
+
205
+ required init?(coder: NSCoder) {
206
+ fatalError("init(coder:) has not been implemented")
207
+ }
208
+
209
+ deinit {
210
+ cleanup()
211
+ }
212
+
213
+ // MARK: Utility functions
214
+ func cleanup() {
215
+ hmsHLSPlayer.stop()
216
+
217
+ // Remove HLS player playback events
218
+ hmsHLSPlayer.delegate = nil
219
+
220
+ // Remove HLS player stats timer
221
+ hlsStatsTimerRef?.invalidate()
222
+ }
223
+
224
+ private func sendHLSPlaybackEventToJS(_ eventName: String, _ data: [String: Any]) {
225
+ guard let onHmsHlsPlaybackEvent = onHmsHlsPlaybackEvent else { return }
226
+
227
+ onHmsHlsPlaybackEvent(["event": eventName, "data": data])
228
+ }
229
+
230
+ private func sendHLSStatsEventToJS(_ eventName: String, _ data: [String: Any]) {
231
+ guard let onHmsHlsStatsEvent = onHmsHlsStatsEvent else { return }
232
+
233
+ onHmsHlsStatsEvent(["event": eventName, "data": data])
234
+ }
235
+
236
+ private func attachPlayerPlaybackListeners() {
237
+ // Attaching HLS Player Playback Events Listener
238
+ eventController = HLSPlaybackEventController(self)
239
+ hmsHLSPlayer.delegate = eventController
240
+ }
241
+
242
+ private func attachHLSPlayerStatsListener() {
243
+ // Only Attach listener, if there is no previously attached listener
244
+ if hlsStatsTimerRef == nil {
245
+
246
+ // Attaching HLS Player Stats Event Listener
247
+ hlsStatsTimerRef = Timer.scheduledTimer(withTimeInterval: 2.0, repeats: true) { [weak self] _ in
248
+ guard let self = self, self.onHmsHlsStatsEvent != nil else { return }
249
+
250
+ let statsMonitor = self.hmsHLSPlayer.statMonitor
251
+
252
+ var data = [String: Any]()
253
+
254
+ // bandwidth
255
+ data["bandWidthEstimate"] = statsMonitor.estimatedBandwidth
256
+ data["totalBytesLoaded"] = statsMonitor.bytesDownloaded
257
+
258
+ // bufferedDuration
259
+ data["bufferedDuration"] = statsMonitor.bufferedDuration
260
+
261
+ // distanceFromLive
262
+ data["distanceFromLive"] = statsMonitor.distanceFromLiveEdge
263
+
264
+ // frameInfo
265
+ data["droppedFrameCount"] = statsMonitor.droppedFrames
266
+
267
+ // videoInfo
268
+ data["averageBitrate"] = statsMonitor.bitrate
269
+ data["videoHeight"] = statsMonitor.videoSize.height
270
+ data["videoWidth"] = statsMonitor.videoSize.width
271
+
272
+ self.sendHLSStatsEventToJS(HMSHLSPlayerConstants.ON_STATS_EVENT_UPDATE, data)
273
+ }
274
+ }
275
+ }
276
+
277
+ fileprivate func onCue(cue: HMSHLSCue) {
278
+ guard onHmsHlsPlaybackEvent != nil else { return }
279
+
280
+ var data = [String: Any]()
281
+
282
+ data["id"] = cue.id
283
+ data["startDate"] = String(cue.startDate.timeIntervalSince1970)
284
+ if let endDate = cue.endDate {
285
+ data["endDate"] = String(endDate.timeIntervalSince1970)
286
+ }
287
+ if let payload = cue.payload {
288
+ data["payloadval"] = payload
289
+ }
290
+
291
+ sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_CUE_EVENT, data)
292
+ }
293
+
294
+ fileprivate func onPlaybackFailure(error: Error) {
295
+ guard onHmsHlsPlaybackEvent != nil else { return }
296
+
297
+ var data = [String: Any]()
298
+
299
+ data["error"] = [
300
+ "errorCode": error.localizedDescription,
301
+ "errorCodeName": error.localizedDescription,
302
+ "message": error.localizedDescription
303
+ ]
304
+
305
+ sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_FAILURE_EVENT, data)
306
+ }
307
+
308
+ fileprivate func onPlaybackStateChanged(state: HMSHLSPlaybackState) {
309
+ guard onHmsHlsPlaybackEvent != nil else { return }
310
+
311
+ var data = [String: Any]()
312
+
313
+ data["state"] = state.description
314
+
315
+ sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_STATE_CHANGE_EVENT, data)
316
+ }
317
+ }
318
+
319
+ class HLSPlaybackEventController: HMSHLSPlayerDelegate {
320
+ weak var hmsHlsPlayerDelegate: HMSHLSPlayer?
321
+
322
+ init(_ hmsPlayerDelegate: HMSHLSPlayer) {
323
+ self.hmsHlsPlayerDelegate = hmsPlayerDelegate
324
+ }
325
+
326
+ func onPlaybackStateChanged(state: HMSHLSPlaybackState) {
327
+ hmsHlsPlayerDelegate?.onPlaybackStateChanged(state: state)
328
+ }
329
+
330
+ func onCue(cue: HMSHLSCue) {
331
+ hmsHlsPlayerDelegate?.onCue(cue: cue)
332
+ }
333
+
334
+ func onPlaybackFailure(error: Error) {
335
+ hmsHlsPlayerDelegate?.onPlaybackFailure(error: error)
336
+ }
337
+ }
338
+
339
+ enum HMSHLSPlayerConstants {
340
+ // HLS Playback Events
341
+ static let ON_PLAYBACK_CUE_EVENT = "ON_PLAYBACK_CUE_EVENT"
342
+ static let ON_PLAYBACK_FAILURE_EVENT = "ON_PLAYBACK_FAILURE_EVENT"
343
+ static let ON_PLAYBACK_STATE_CHANGE_EVENT = "ON_PLAYBACK_STATE_CHANGE_EVENT"
344
+
345
+ // HLS Playback Stats Events
346
+ static let ON_STATS_EVENT_UPDATE = "ON_STATS_EVENT_UPDATE"
347
+ }
348
+
349
+ extension HMSHLSPlaybackState: CustomStringConvertible {
350
+ public var description: String {
351
+ switch self {
352
+ case .buffering:
353
+ return "buffering"
354
+ case .failed:
355
+ return "failed"
356
+ case .paused:
357
+ return "paused"
358
+ case .playing:
359
+ return "playing"
360
+ case .stopped:
361
+ return "stopped"
362
+ case .unknown:
363
+ return "unknown"
364
+ @unknown default:
365
+ return "unknown"
366
+ }
367
+ }
368
+ }
package/ios/HMSManager.m CHANGED
@@ -38,6 +38,7 @@ RCT_EXTERN_METHOD(destroy: (NSDictionary) data :(RCTPromiseResolveBlock) resolve
38
38
  RCT_EXTERN_METHOD(startScreenshare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
39
39
  RCT_EXTERN_METHOD(stopScreenshare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
40
40
  RCT_EXTERN_METHOD(isScreenShared: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
41
+ RCT_EXTERN_METHOD(switchAudioOutputUsingIOSUI: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
41
42
  RCT_EXTERN_METHOD(playAudioShare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
42
43
  RCT_EXTERN_METHOD(setAudioShareVolume: (NSDictionary) data)
43
44
  RCT_EXTERN_METHOD(stopAudioShare: (NSDictionary) data)
@@ -51,8 +52,6 @@ RCT_EXTERN_METHOD(getRemotePeers: (NSDictionary) data :(RCTPromiseResolveBlock)
51
52
  RCT_EXTERN_METHOD(getRoles: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
52
53
  RCT_EXTERN_METHOD(enableNetworkQualityUpdates: (NSDictionary) data)
53
54
  RCT_EXTERN_METHOD(disableNetworkQualityUpdates: (NSDictionary) data)
54
- RCT_EXTERN_METHOD(setSessionMetaData: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
55
- RCT_EXTERN_METHOD(getSessionMetaData: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
56
55
  RCT_EXTERN_METHOD(changeRoleOfPeer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
57
56
  RCT_EXTERN_METHOD(changeRoleOfPeersWithRoles: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
58
57