@100mslive/react-native-hms 0.8.0 → 0.8.4

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 (202) hide show
  1. package/README.md +37 -39
  2. package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
  3. package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
  4. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  5. package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
  6. package/android/.gradle/checksums/checksums.lock +0 -0
  7. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  8. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  9. package/android/build.gradle +1 -2
  10. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +249 -230
  11. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +145 -13
  12. package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +56 -21
  13. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +463 -247
  14. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +15 -18
  15. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
  16. package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +4 -10
  17. package/ios/HmsDecoder.swift +135 -35
  18. package/ios/HmsHelper.swift +103 -1
  19. package/ios/HmsManager.m +13 -9
  20. package/ios/HmsManager.swift +59 -24
  21. package/ios/HmsSDK.swift +322 -85
  22. package/ios/HmsView.swift +1 -1
  23. package/lib/commonjs/classes/HMSAudioTrackSettings.js +3 -0
  24. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  25. package/lib/commonjs/classes/HMSBrowserRecordingState.js +23 -0
  26. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -0
  27. package/lib/commonjs/classes/HMSCameraFacing.js +14 -0
  28. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -0
  29. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +3 -0
  30. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  31. package/lib/commonjs/classes/HMSConfig.js +3 -1
  32. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  33. package/lib/commonjs/classes/HMSEncoder.js +27 -7
  34. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  35. package/lib/commonjs/classes/HMSException.js +30 -0
  36. package/lib/commonjs/classes/HMSException.js.map +1 -0
  37. package/lib/commonjs/classes/HMSHelper.js +2 -2
  38. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  39. package/lib/commonjs/classes/HMSLocalAudioTrack.js +32 -0
  40. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  41. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  42. package/lib/commonjs/classes/HMSLocalVideoTrack.js +18 -0
  43. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  44. package/lib/commonjs/classes/HMSLogger.js +28 -1
  45. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  46. package/lib/commonjs/classes/HMSPeer.js +3 -0
  47. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  48. package/lib/commonjs/classes/HMSPeerUpdate.js +1 -0
  49. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  50. package/lib/commonjs/classes/HMSPermissions.js +6 -0
  51. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  52. package/lib/commonjs/classes/HMSRTMPConfig.js +26 -0
  53. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -0
  54. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +19 -0
  55. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  56. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  57. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +19 -0
  58. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  59. package/lib/commonjs/classes/HMSRoom.js +9 -0
  60. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  61. package/lib/commonjs/classes/HMSRtmpStreamingState.js +23 -0
  62. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -0
  63. package/lib/commonjs/classes/HMSSDK.js +229 -125
  64. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  65. package/lib/commonjs/classes/HMSServerRecordingState.js +23 -0
  66. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -0
  67. package/lib/commonjs/classes/HMSTrack.js +2 -19
  68. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  69. package/lib/commonjs/classes/HMSTrackSettings.js +3 -0
  70. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  71. package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
  72. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  73. package/lib/commonjs/classes/HMSVideoResolution.js +23 -0
  74. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -0
  75. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  76. package/lib/commonjs/classes/HMSVideoTrackSettings.js +0 -3
  77. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  78. package/lib/commonjs/index.js +98 -0
  79. package/lib/commonjs/index.js.map +1 -1
  80. package/lib/module/classes/HMSAudioTrackSettings.js +3 -0
  81. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  82. package/lib/module/classes/HMSBrowserRecordingState.js +14 -0
  83. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -0
  84. package/lib/module/classes/HMSCameraFacing.js +7 -0
  85. package/lib/module/classes/HMSCameraFacing.js.map +1 -0
  86. package/lib/module/classes/HMSChangeTrackStateRequest.js +3 -0
  87. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  88. package/lib/module/classes/HMSConfig.js +3 -1
  89. package/lib/module/classes/HMSConfig.js.map +1 -1
  90. package/lib/module/classes/HMSEncoder.js +26 -7
  91. package/lib/module/classes/HMSEncoder.js.map +1 -1
  92. package/lib/module/classes/HMSException.js +21 -0
  93. package/lib/module/classes/HMSException.js.map +1 -0
  94. package/lib/module/classes/HMSHelper.js +2 -2
  95. package/lib/module/classes/HMSHelper.js.map +1 -1
  96. package/lib/module/classes/HMSLocalAudioTrack.js +30 -1
  97. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  98. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  99. package/lib/module/classes/HMSLocalVideoTrack.js +15 -0
  100. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  101. package/lib/module/classes/HMSLogger.js +28 -1
  102. package/lib/module/classes/HMSLogger.js.map +1 -1
  103. package/lib/module/classes/HMSPeer.js +3 -0
  104. package/lib/module/classes/HMSPeer.js.map +1 -1
  105. package/lib/module/classes/HMSPeerUpdate.js +1 -0
  106. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  107. package/lib/module/classes/HMSPermissions.js +6 -0
  108. package/lib/module/classes/HMSPermissions.js.map +1 -1
  109. package/lib/module/classes/HMSRTMPConfig.js +17 -0
  110. package/lib/module/classes/HMSRTMPConfig.js.map +1 -0
  111. package/lib/module/classes/HMSRemoteAudioTrack.js +16 -0
  112. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  113. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  114. package/lib/module/classes/HMSRemoteVideoTrack.js +16 -0
  115. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  116. package/lib/module/classes/HMSRoom.js +9 -0
  117. package/lib/module/classes/HMSRoom.js.map +1 -1
  118. package/lib/module/classes/HMSRtmpStreamingState.js +14 -0
  119. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -0
  120. package/lib/module/classes/HMSSDK.js +227 -125
  121. package/lib/module/classes/HMSSDK.js.map +1 -1
  122. package/lib/module/classes/HMSServerRecordingState.js +14 -0
  123. package/lib/module/classes/HMSServerRecordingState.js.map +1 -0
  124. package/lib/module/classes/HMSTrack.js +2 -17
  125. package/lib/module/classes/HMSTrack.js.map +1 -1
  126. package/lib/module/classes/HMSTrackSettings.js +3 -0
  127. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  128. package/lib/module/classes/HMSVideoCodec.js +4 -4
  129. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  130. package/lib/module/classes/HMSVideoResolution.js +14 -0
  131. package/lib/module/classes/HMSVideoResolution.js.map +1 -0
  132. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  133. package/lib/module/classes/HMSVideoTrackSettings.js +0 -3
  134. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  135. package/lib/module/index.js +7 -0
  136. package/lib/module/index.js.map +1 -1
  137. package/lib/typescript/classes/HMSAudioTrackSettings.d.ts +3 -0
  138. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +9 -0
  139. package/lib/typescript/classes/HMSCameraFacing.d.ts +4 -0
  140. package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -0
  141. package/lib/typescript/classes/HMSConfig.d.ts +2 -0
  142. package/lib/typescript/classes/HMSEncoder.d.ts +3 -1
  143. package/lib/typescript/classes/HMSException.d.ts +22 -0
  144. package/lib/typescript/classes/HMSLocalAudioTrack.d.ts +1 -0
  145. package/lib/typescript/classes/HMSLocalPeer.d.ts +4 -0
  146. package/lib/typescript/classes/HMSLogger.d.ts +7 -0
  147. package/lib/typescript/classes/HMSPeer.d.ts +2 -0
  148. package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
  149. package/lib/typescript/classes/HMSPermissions.d.ts +4 -0
  150. package/lib/typescript/classes/HMSRTMPConfig.d.ts +10 -0
  151. package/lib/typescript/classes/HMSRemotePeer.d.ts +1 -0
  152. package/lib/typescript/classes/HMSRoom.d.ts +9 -0
  153. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +9 -0
  154. package/lib/typescript/classes/HMSSDK.d.ts +22 -13
  155. package/lib/typescript/classes/HMSServerRecordingState.d.ts +9 -0
  156. package/lib/typescript/classes/HMSTrack.d.ts +1 -1
  157. package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
  158. package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
  159. package/lib/typescript/classes/HMSVideoResolution.d.ts +8 -0
  160. package/lib/typescript/classes/HMSVideoSettings.d.ts +3 -3
  161. package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +13 -10
  162. package/lib/typescript/index.d.ts +7 -0
  163. package/package.json +2 -1
  164. package/src/classes/HMSAudioTrackSettings.ts +9 -1
  165. package/src/classes/HMSBrowserRecordingState.ts +11 -0
  166. package/src/classes/HMSCameraFacing.ts +4 -0
  167. package/src/classes/HMSChangeTrackStateRequest.ts +7 -1
  168. package/src/classes/HMSConfig.ts +3 -1
  169. package/src/classes/HMSEncoder.ts +22 -2
  170. package/src/classes/HMSException.ts +33 -0
  171. package/src/classes/HMSHelper.ts +2 -2
  172. package/src/classes/HMSLocalAudioTrack.ts +29 -1
  173. package/src/classes/HMSLocalPeer.ts +4 -0
  174. package/src/classes/HMSLocalVideoTrack.ts +15 -0
  175. package/src/classes/HMSLogger.ts +14 -1
  176. package/src/classes/HMSPeer.ts +3 -0
  177. package/src/classes/HMSPeerUpdate.ts +1 -0
  178. package/src/classes/HMSPermissions.ts +6 -0
  179. package/src/classes/HMSRTMPConfig.ts +15 -0
  180. package/src/classes/HMSRemoteAudioTrack.ts +16 -0
  181. package/src/classes/HMSRemotePeer.ts +1 -0
  182. package/src/classes/HMSRemoteVideoTrack.ts +16 -0
  183. package/src/classes/HMSRoom.ts +12 -0
  184. package/src/classes/HMSRtmpStreamingState.ts +11 -0
  185. package/src/classes/HMSSDK.tsx +170 -71
  186. package/src/classes/HMSServerRecordingState.ts +11 -0
  187. package/src/classes/HMSTrack.ts +2 -15
  188. package/src/classes/HMSTrackSettings.ts +3 -0
  189. package/src/classes/HMSVideoCodec.ts +4 -4
  190. package/src/classes/HMSVideoResolution.ts +9 -0
  191. package/src/classes/HMSVideoSettings.ts +3 -3
  192. package/src/classes/HMSVideoTrackSettings.ts +13 -10
  193. package/src/index.ts +7 -0
  194. package/android/.gradle/6.9/executionHistory/executionHistory.bin +0 -0
  195. package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
  196. package/android/.gradle/6.9/fileHashes/resourceHashesCache.bin +0 -0
  197. package/android/.gradle/6.9/javaCompile/classAnalysis.bin +0 -0
  198. package/android/.gradle/6.9/javaCompile/jarAnalysis.bin +0 -0
  199. package/android/.gradle/6.9/javaCompile/javaCompile.lock +0 -0
  200. package/android/.gradle/6.9/javaCompile/taskHistory.bin +0 -0
  201. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  202. package/android/.project +0 -34
@@ -1,6 +1,13 @@
1
1
  package com.reactnativehmssdk
2
2
 
3
+ import com.facebook.react.bridge.ReadableArray
3
4
  import com.facebook.react.bridge.ReadableMap
5
+ import live.hms.video.media.codec.HMSAudioCodec
6
+ import live.hms.video.media.codec.HMSVideoCodec
7
+ import live.hms.video.media.settings.HMSAudioTrackSettings
8
+ import live.hms.video.media.settings.HMSTrackSettings
9
+ import live.hms.video.media.settings.HMSVideoResolution
10
+ import live.hms.video.media.settings.HMSVideoTrackSettings
4
11
  import live.hms.video.media.tracks.*
5
12
  import live.hms.video.sdk.models.*
6
13
  import live.hms.video.sdk.models.role.*
@@ -22,21 +29,11 @@ object HmsHelper {
22
29
  return false
23
30
  }
24
31
  }
25
- "Boolean" -> {
26
- if (map.getBoolean(key) == null) {
27
- return false
28
- }
29
- }
30
32
  "Array" -> {
31
33
  if (map.getArray(key) == null) {
32
34
  return false
33
35
  }
34
36
  }
35
- "Int" -> {
36
- if (map.getInt(key) == null) {
37
- return false
38
- }
39
- }
40
37
  "Map" -> {
41
38
  if (map.getMap(key) == null) {
42
39
  return false
@@ -163,13 +160,148 @@ object HmsHelper {
163
160
  return null
164
161
  }
165
162
 
163
+ fun getTrackSettings(data: ReadableMap?): HMSTrackSettings? {
164
+ if (data == null) {
165
+ return null
166
+ }
167
+
168
+ var useHardwareEchoCancellation = false
169
+ val requiredKeysUseHardwareEchoCancellation =
170
+ this.areAllRequiredKeysAvailable(
171
+ data,
172
+ arrayOf(Pair("useHardwareEchoCancellation", "Boolean"))
173
+ )
174
+ if (requiredKeysUseHardwareEchoCancellation) {
175
+ useHardwareEchoCancellation = data.getBoolean("useHardwareEchoCancellation")
176
+ }
177
+
178
+ var video: ReadableMap? = null
179
+ val requiredKeysVideo = this.areAllRequiredKeysAvailable(data, arrayOf(Pair("video", "Map")))
180
+ if (requiredKeysVideo) {
181
+ video = data.getMap("video")
182
+ }
183
+
184
+ var audio: ReadableMap? = null
185
+ val requiredKeysAudio = this.areAllRequiredKeysAvailable(data, arrayOf(Pair("audio", "Map")))
186
+ if (requiredKeysAudio) {
187
+ audio = data.getMap("audio")
188
+ }
189
+
190
+ if (video == null && audio == null && !useHardwareEchoCancellation) {
191
+ return null
192
+ }
193
+
194
+ val videoSettings = this.getVideoTrackSettings(video)
195
+ val audioSettings = this.getAudioTrackSettings(audio, useHardwareEchoCancellation)
196
+ val trackSettingsBuilder = HMSTrackSettings.Builder()
197
+ return trackSettingsBuilder.audio(audioSettings).video(videoSettings).build()
198
+ }
199
+
200
+ private fun getAudioTrackSettings(
201
+ data: ReadableMap?,
202
+ useHardwareEchoCancellation: Boolean
203
+ ): HMSAudioTrackSettings {
204
+ val builder =
205
+ HMSAudioTrackSettings.Builder()
206
+ .setUseHardwareAcousticEchoCanceler(useHardwareEchoCancellation)
207
+
208
+ if (data != null) {
209
+ val maxBitrate = data.getInt("maxBitrate")
210
+ val codec = getAudioCodec(data.getString("codec"))
211
+
212
+ builder.maxBitrate(maxBitrate)
213
+ builder.codec(codec)
214
+ }
215
+
216
+ return builder.build()
217
+ }
218
+
219
+ // TODO: find out a way to set settings required to create HMSVideoTrackSettings
220
+
221
+ private fun getVideoTrackSettings(data: ReadableMap?): HMSVideoTrackSettings {
222
+ val builder = HMSVideoTrackSettings.Builder()
223
+ if (data != null) {
224
+ val codec = getVideoCodec(data.getString("codec"))
225
+ val resolution = getVideoResolution(data.getMap("resolution"))
226
+ val maxBitrate = data.getInt("maxBitrate")
227
+ val maxFrameRate = data.getInt("maxFrameRate")
228
+ val cameraFacing = getCameraFacing(data.getString("cameraFacing"))
229
+
230
+ builder.codec(codec)
231
+ builder.cameraFacing(cameraFacing)
232
+ if (resolution != null) {
233
+ builder.resolution(resolution)
234
+ }
235
+ builder.maxBitrate(maxBitrate)
236
+ builder.maxFrameRate(maxFrameRate)
237
+ }
238
+ return builder.build()
239
+ }
240
+
241
+ private fun getVideoResolution(map: ReadableMap?): HMSVideoResolution? {
242
+ val width = map?.getDouble("width")
243
+ val height = map?.getDouble("height")
244
+
245
+ return if (width != null && height != null) {
246
+ HMSVideoResolution(width = width.toInt(), height = height.toInt())
247
+ } else {
248
+ null
249
+ }
250
+ }
251
+
252
+ private fun getAudioCodec(codecString: String?): HMSAudioCodec {
253
+ when (codecString) {
254
+ "opus" -> {
255
+ return HMSAudioCodec.OPUS
256
+ }
257
+ }
258
+ return HMSAudioCodec.OPUS
259
+ }
260
+
261
+ private fun getVideoCodec(codecString: String?): HMSVideoCodec {
262
+ when (codecString) {
263
+ "H264" -> {
264
+ return HMSVideoCodec.H264
265
+ }
266
+ "VP8" -> {
267
+ return HMSVideoCodec.VP8
268
+ }
269
+ "VP9" -> {
270
+ return HMSVideoCodec.VP9
271
+ }
272
+ }
273
+ return HMSVideoCodec.H264
274
+ }
275
+
276
+ private fun getCameraFacing(cameraFacing: String?): HMSVideoTrackSettings.CameraFacing {
277
+ when (cameraFacing) {
278
+ "FRONT" -> {
279
+ return HMSVideoTrackSettings.CameraFacing.FRONT
280
+ }
281
+ "BACK" -> {
282
+ return HMSVideoTrackSettings.CameraFacing.BACK
283
+ }
284
+ }
285
+ return HMSVideoTrackSettings.CameraFacing.FRONT
286
+ }
287
+
166
288
  fun getHms(credentials: ReadableMap, hmsCollection: MutableMap<String, HmsSDK>): HmsSDK? {
167
289
  val id = credentials.getString("id")
168
290
 
169
- if (id != null) {
170
- return hmsCollection[id]
291
+ return if (id != null) {
292
+ hmsCollection[id]
171
293
  } else {
172
- return null
294
+ null
295
+ }
296
+ }
297
+
298
+ fun getRtmpUrls(rtmpURLsList: ReadableArray?): List<String> {
299
+ val rtmpURLs = mutableListOf<String>()
300
+ if (rtmpURLsList !== null) {
301
+ for (rtmpURL in rtmpURLsList.toArrayList()) {
302
+ rtmpURLs.add(rtmpURL as String)
303
+ }
173
304
  }
305
+ return rtmpURLs
174
306
  }
175
307
  }
@@ -23,19 +23,19 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
23
23
  // Example method
24
24
  // See https://reactnative.dev/docs/native-modules-android
25
25
  @ReactMethod
26
- fun build(callback: Promise?) {
26
+ fun build(data: ReadableMap?, callback: Promise?) {
27
27
  val hasItem = hmsCollection.containsKey("12345")
28
28
  if (hasItem) {
29
29
  val uuid = UUID.randomUUID()
30
30
  val randomUUIDString = uuid.toString()
31
- val sdkInstance: HmsSDK = HmsSDK(this, randomUUIDString, reactApplicationContext)
31
+ val sdkInstance = HmsSDK(data, this, randomUUIDString, reactApplicationContext)
32
32
 
33
33
  hmsCollection[randomUUIDString] = sdkInstance
34
34
 
35
35
  callback?.resolve(randomUUIDString)
36
36
  } else {
37
37
  val randomUUIDString = "12345"
38
- val sdkInstance: HmsSDK = HmsSDK(this, randomUUIDString, reactApplicationContext)
38
+ val sdkInstance = HmsSDK(data, this, randomUUIDString, reactApplicationContext)
39
39
 
40
40
  hmsCollection[randomUUIDString] = sdkInstance
41
41
 
@@ -86,45 +86,45 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
86
86
  }
87
87
 
88
88
  @ReactMethod
89
- fun sendBroadcastMessage(data: ReadableMap) {
89
+ fun sendBroadcastMessage(data: ReadableMap, callback: Promise?) {
90
90
  val hms = HmsHelper.getHms(data, hmsCollection)
91
91
 
92
- hms?.sendBroadcastMessage(data)
92
+ hms?.sendBroadcastMessage(data, callback)
93
93
  }
94
94
 
95
95
  @ReactMethod
96
- fun sendGroupMessage(data: ReadableMap) {
96
+ fun sendGroupMessage(data: ReadableMap, callback: Promise?) {
97
97
  val hms = HmsHelper.getHms(data, hmsCollection)
98
98
 
99
- hms?.sendGroupMessage(data)
99
+ hms?.sendGroupMessage(data, callback)
100
100
  }
101
101
 
102
102
  @ReactMethod
103
- fun sendDirectMessage(data: ReadableMap) {
103
+ fun sendDirectMessage(data: ReadableMap, callback: Promise?) {
104
104
  val hms = HmsHelper.getHms(data, hmsCollection)
105
105
 
106
- hms?.sendDirectMessage(data)
106
+ hms?.sendDirectMessage(data, callback)
107
107
  }
108
108
 
109
109
  @ReactMethod
110
- fun changeRole(data: ReadableMap) {
110
+ fun changeRole(data: ReadableMap, callback: Promise?) {
111
111
  val hms = HmsHelper.getHms(data, hmsCollection)
112
112
 
113
- hms?.changeRole(data)
113
+ hms?.changeRole(data, callback)
114
114
  }
115
115
 
116
116
  @ReactMethod
117
- fun changeTrackState(data: ReadableMap) {
117
+ fun changeTrackState(data: ReadableMap, callback: Promise?) {
118
118
  val hms = HmsHelper.getHms(data, hmsCollection)
119
119
 
120
- hms?.changeTrackState(data)
120
+ hms?.changeTrackState(data, callback)
121
121
  }
122
122
 
123
123
  @ReactMethod
124
- fun changeTrackStateRoles(data: ReadableMap) {
124
+ fun changeTrackStateRoles(data: ReadableMap, callback: Promise?) {
125
125
  val hms = HmsHelper.getHms(data, hmsCollection)
126
126
 
127
- hms?.changeTrackStateRoles(data)
127
+ hms?.changeTrackStateRoles(data, callback)
128
128
  }
129
129
 
130
130
  @ReactMethod
@@ -135,10 +135,10 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
135
135
  }
136
136
 
137
137
  @ReactMethod
138
- fun removePeer(data: ReadableMap) {
138
+ fun removePeer(data: ReadableMap, callback: Promise?) {
139
139
  val hms = HmsHelper.getHms(data, hmsCollection)
140
140
 
141
- hms?.removePeer(data)
141
+ hms?.removePeer(data, callback)
142
142
  }
143
143
 
144
144
  @ReactMethod
@@ -163,17 +163,31 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
163
163
  }
164
164
 
165
165
  @ReactMethod
166
- fun endRoom(data: ReadableMap) {
166
+ fun endRoom(data: ReadableMap, callback: Promise?) {
167
167
  val hms = HmsHelper.getHms(data, hmsCollection)
168
168
 
169
- hms?.endRoom(data)
169
+ hms?.endRoom(data, callback)
170
170
  }
171
171
 
172
172
  @ReactMethod
173
- fun acceptRoleChange(data: ReadableMap) {
173
+ fun acceptRoleChange(data: ReadableMap, callback: Promise?) {
174
174
  val hms = HmsHelper.getHms(data, hmsCollection)
175
175
 
176
- hms?.acceptRoleChange()
176
+ hms?.acceptRoleChange(callback)
177
+ }
178
+
179
+ @ReactMethod
180
+ fun setVolume(data: ReadableMap) {
181
+ val hms = HmsHelper.getHms(data, hmsCollection)
182
+
183
+ hms?.setVolume(data)
184
+ }
185
+
186
+ @ReactMethod
187
+ fun getVolume(data: ReadableMap, callback: Promise?) {
188
+ val hms = HmsHelper.getHms(data, hmsCollection)
189
+
190
+ hms?.getVolume(data, callback)
177
191
  }
178
192
 
179
193
  @ReactMethod
@@ -183,6 +197,27 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
183
197
  hms?.muteAllPeersAudio(data)
184
198
  }
185
199
 
200
+ @ReactMethod
201
+ fun changeMetadata(data: ReadableMap, callback: Promise?) {
202
+ val hms = HmsHelper.getHms(data, hmsCollection)
203
+
204
+ hms?.changeMetadata(data, callback)
205
+ }
206
+
207
+ @ReactMethod
208
+ fun startRTMPOrRecording(data: ReadableMap, callback: Promise?) {
209
+ val hms = HmsHelper.getHms(data, hmsCollection)
210
+
211
+ hms?.startRTMPOrRecording(data, callback)
212
+ }
213
+
214
+ @ReactMethod
215
+ fun stopRtmpAndRecording(data: ReadableMap, callback: Promise?) {
216
+ val hms = HmsHelper.getHms(data, hmsCollection)
217
+
218
+ hms?.stopRtmpAndRecording(callback)
219
+ }
220
+
186
221
  fun emitEvent(event: String, data: WritableMap) {
187
222
  reactApplicationContext
188
223
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)