@100mslive/react-native-hms 0.8.1 → 0.8.2

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 (73) hide show
  1. package/android/build.gradle +1 -2
  2. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +198 -254
  3. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +18 -30
  4. package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +18 -18
  5. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +182 -146
  6. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +15 -21
  7. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
  8. package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +4 -10
  9. package/ios/HmsDecoder.swift +33 -20
  10. package/ios/HmsHelper.swift +13 -3
  11. package/ios/HmsManager.m +8 -8
  12. package/ios/HmsManager.swift +16 -16
  13. package/ios/HmsSDK.swift +97 -29
  14. package/lib/commonjs/classes/HMSEncoder.js +6 -4
  15. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  16. package/lib/commonjs/classes/HMSLocalAudioTrack.js +20 -0
  17. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  18. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  19. package/lib/commonjs/classes/HMSLocalVideoTrack.js +18 -0
  20. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  21. package/lib/commonjs/classes/HMSLogger.js +28 -1
  22. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  23. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +19 -0
  24. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  25. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +19 -0
  26. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  27. package/lib/commonjs/classes/HMSSDK.js +179 -134
  28. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  29. package/lib/commonjs/classes/HMSTrackSettings.js +3 -0
  30. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  31. package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
  32. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  33. package/lib/commonjs/index.js +14 -0
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/module/classes/HMSEncoder.js +6 -4
  36. package/lib/module/classes/HMSEncoder.js.map +1 -1
  37. package/lib/module/classes/HMSLocalAudioTrack.js +17 -0
  38. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  39. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  40. package/lib/module/classes/HMSLocalVideoTrack.js +15 -0
  41. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  42. package/lib/module/classes/HMSLogger.js +28 -1
  43. package/lib/module/classes/HMSLogger.js.map +1 -1
  44. package/lib/module/classes/HMSRemoteAudioTrack.js +16 -0
  45. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  46. package/lib/module/classes/HMSRemoteVideoTrack.js +16 -0
  47. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  48. package/lib/module/classes/HMSSDK.js +176 -134
  49. package/lib/module/classes/HMSSDK.js.map +1 -1
  50. package/lib/module/classes/HMSTrackSettings.js +3 -0
  51. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  52. package/lib/module/classes/HMSVideoCodec.js +4 -4
  53. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  54. package/lib/module/index.js +1 -0
  55. package/lib/module/index.js.map +1 -1
  56. package/lib/typescript/classes/HMSLocalPeer.d.ts +3 -0
  57. package/lib/typescript/classes/HMSLogger.d.ts +7 -0
  58. package/lib/typescript/classes/HMSSDK.d.ts +11 -11
  59. package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
  60. package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
  61. package/lib/typescript/index.d.ts +1 -0
  62. package/package.json +1 -1
  63. package/src/classes/HMSEncoder.ts +3 -1
  64. package/src/classes/HMSLocalAudioTrack.ts +16 -0
  65. package/src/classes/HMSLocalPeer.ts +3 -0
  66. package/src/classes/HMSLocalVideoTrack.ts +15 -0
  67. package/src/classes/HMSLogger.ts +14 -1
  68. package/src/classes/HMSRemoteAudioTrack.ts +16 -0
  69. package/src/classes/HMSRemoteVideoTrack.ts +16 -0
  70. package/src/classes/HMSSDK.tsx +134 -73
  71. package/src/classes/HMSTrackSettings.ts +3 -0
  72. package/src/classes/HMSVideoCodec.ts +4 -4
  73. package/src/index.ts +1 -0
@@ -27,7 +27,6 @@ def safeExtGet(prop, fallback) {
27
27
 
28
28
  android {
29
29
  compileSdkVersion safeExtGet('Hmssdk_compileSdkVersion', 29)
30
- buildToolsVersion safeExtGet('Hmssdk_buildToolsVersion', '29.0.2')
31
30
  defaultConfig {
32
31
  minSdkVersion safeExtGet('Hmssdk_minSdkVersion', 21)
33
32
  targetSdkVersion safeExtGet('Hmssdk_targetSdkVersion', 29)
@@ -64,6 +63,6 @@ dependencies {
64
63
  //noinspection GradleDynamicVersion
65
64
  implementation "com.facebook.react:react-native:+"
66
65
  implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // From node_modules
67
- implementation 'com.github.100mslive:android-sdk:2.2.3'
66
+ implementation 'com.github.100mslive:android-sdk:2.2.4'
68
67
  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
69
68
  }
@@ -1,10 +1,9 @@
1
1
  package com.reactnativehmssdk
2
2
 
3
3
  import com.facebook.react.bridge.*
4
- import java.util.*
5
4
  import live.hms.video.error.HMSException
6
- import live.hms.video.media.codec.HMSVideoCodec
7
5
  import live.hms.video.media.settings.HMSAudioTrackSettings
6
+ import live.hms.video.media.settings.HMSVideoResolution
8
7
  import live.hms.video.media.settings.HMSVideoTrackSettings
9
8
  import live.hms.video.media.tracks.*
10
9
  import live.hms.video.sdk.models.*
@@ -32,11 +31,8 @@ object HmsDecoder {
32
31
  "serverRecordingState",
33
32
  this.getHMSServerRecordingState(hmsRoom.serverRecordingState)
34
33
  )
35
- var peers: WritableArray = Arguments.createArray()
36
- for (peer in hmsRoom.peerList) {
37
- peers.pushMap(getHmsPeer(peer))
38
- }
39
- room.putArray("peers", peers)
34
+ room.putMap("localPeer", this.getHmsLocalPeer(hmsRoom.localPeer))
35
+ room.putArray("peers", this.getAllPeers(hmsRoom.peerList))
40
36
  }
41
37
  return room
42
38
  }
@@ -47,26 +43,20 @@ object HmsDecoder {
47
43
  peer.putString("peerID", hmsPeer.peerID)
48
44
  peer.putString("name", hmsPeer.name)
49
45
  peer.putBoolean("isLocal", hmsPeer.isLocal)
50
- peer.putString(
51
- "customerUserID",
52
- if (hmsPeer.customerUserID == null) hmsPeer.customerUserID else ""
53
- )
54
- peer.putString("metadata", if (hmsPeer.metadata == null) hmsPeer.metadata else "")
55
- peer.putMap("audioTrack", getHmsAudioTrack(hmsPeer.audioTrack))
56
- peer.putMap("videoTrack", getHmsVideoTrack(hmsPeer.videoTrack))
57
- peer.putMap("role", getHmsRole(hmsPeer.hmsRole))
58
- var auxiliaryTracks: WritableArray = Arguments.createArray()
59
- for (track in hmsPeer.auxiliaryTracks) {
60
- auxiliaryTracks.pushMap(getHmsTrack(track))
61
- }
62
- peer.putArray("auxiliaryTracks", auxiliaryTracks)
46
+ peer.putString("customerUserID", hmsPeer.customerUserID)
47
+ peer.putString("metadata", hmsPeer.metadata)
48
+ peer.putMap("audioTrack", this.getHmsAudioTrack(hmsPeer.audioTrack))
49
+ peer.putMap("videoTrack", this.getHmsVideoTrack(hmsPeer.videoTrack))
50
+ peer.putMap("role", this.getHmsRole(hmsPeer.hmsRole))
51
+ peer.putArray("auxiliaryTracks", this.getAllTracks(hmsPeer.auxiliaryTracks))
63
52
  }
64
53
  return peer
65
54
  }
66
55
 
67
- fun getHmsAudioTrack(hmsAudioTrack: HMSAudioTrack?): WritableMap {
56
+ private fun getHmsAudioTrack(hmsAudioTrack: HMSAudioTrack?): WritableMap {
68
57
  val hmsTrack: WritableMap = Arguments.createMap()
69
58
  if (hmsAudioTrack != null) {
59
+ hmsTrack.putString("type", hmsAudioTrack.type.name)
70
60
  hmsTrack.putString("trackId", hmsAudioTrack.trackId)
71
61
  hmsTrack.putString("source", hmsAudioTrack.source)
72
62
  hmsTrack.putString("trackDescription", hmsAudioTrack.description)
@@ -75,9 +65,10 @@ object HmsDecoder {
75
65
  return hmsTrack
76
66
  }
77
67
 
78
- fun getHmsVideoTrack(hmsVideoTrack: HMSVideoTrack?): WritableMap {
68
+ private fun getHmsVideoTrack(hmsVideoTrack: HMSVideoTrack?): WritableMap {
79
69
  val hmsTrack: WritableMap = Arguments.createMap()
80
70
  if (hmsVideoTrack != null) {
71
+ hmsTrack.putString("type", hmsVideoTrack.type.name)
81
72
  hmsTrack.putString("trackId", hmsVideoTrack.trackId)
82
73
  hmsTrack.putString("source", hmsVideoTrack.source)
83
74
  hmsTrack.putString("trackDescription", hmsVideoTrack.description)
@@ -94,105 +85,63 @@ object HmsDecoder {
94
85
  hmsTrack.putString("source", track.source)
95
86
  hmsTrack.putString("trackDescription", track.description)
96
87
  hmsTrack.putBoolean("isMute", track.isMute)
97
- hmsTrack.putString("type", track.type.toString())
88
+ hmsTrack.putString("type", track.type.name)
98
89
  }
99
90
  return hmsTrack
100
91
  }
101
92
 
102
93
  fun getAllRoles(roles: List<HMSRole>?): WritableArray {
103
94
  val decodedRoles: WritableArray = Arguments.createArray()
104
-
105
95
  if (roles != null) {
106
96
  for (role in roles) {
107
- val decodedRole = getHmsRole(role)
108
-
97
+ val decodedRole = this.getHmsRole(role)
109
98
  decodedRoles.pushMap(decodedRole)
110
99
  }
111
100
  }
112
-
113
101
  return decodedRoles
114
102
  }
115
103
 
116
- fun getHmsRole(hmsRole: HMSRole?): WritableMap {
104
+ private fun getHmsRole(hmsRole: HMSRole?): WritableMap {
117
105
  val role: WritableMap = Arguments.createMap()
118
- // val emptyMap: WritableArray = Arguments.createMap();
119
106
  if (hmsRole != null) {
120
107
  role.putString("name", hmsRole.name)
121
- role.putMap("permissions", getHmsPermissions(hmsRole.permission))
122
- role.putMap("publishSettings", getHmsPublishSettings(hmsRole.publishParams))
108
+ role.putMap("permissions", this.getHmsPermissions(hmsRole.permission))
109
+ role.putMap("publishSettings", this.getHmsPublishSettings(hmsRole.publishParams))
110
+ role.putMap("subscribeSettings", this.getHmsSubscribeSettings(hmsRole.subscribeParams))
123
111
  role.putInt("priority", hmsRole.priority)
124
- // role.putArray("generalPermissions",
125
- // if(hmsRole.generalPermissions!=null)hmsRole.generalPermissions else emptyMap);
126
- // role.putArray("internalPlugins",
127
- // if(hmsRole.internalPlugins!=null)hmsRole.internalPlugins else emptyMap);
128
- // role.putArray("externalPlugins",
129
- // if(hmsRole.externalPlugins!=null)hmsRole.externalPlugins else emptyMap);
130
112
  }
131
113
  return role
132
114
  }
133
115
 
134
- fun getHmsPermissions(hmsPermissions: PermissionsParams?): WritableMap {
116
+ private fun getHmsPermissions(hmsPermissions: PermissionsParams?): WritableMap {
135
117
  val permissions: WritableMap = Arguments.createMap()
136
118
  if (hmsPermissions != null) {
137
- permissions.putBoolean(
138
- "endRoom",
139
- if (hmsPermissions.endRoom != null) hmsPermissions.endRoom else false
140
- )
141
- permissions.putBoolean(
142
- "removeOthers",
143
- if (hmsPermissions.removeOthers != null) hmsPermissions.removeOthers else false
144
- )
145
- permissions.putBoolean(
146
- "mute",
147
- if (hmsPermissions.mute != null) hmsPermissions.mute else false
148
- )
149
- permissions.putBoolean(
150
- "changeRoleForce",
151
- if (hmsPermissions.changeRoleForce != null) hmsPermissions.changeRoleForce else false
152
- )
153
- permissions.putBoolean(
154
- "unmute",
155
- if (hmsPermissions.unmute != null) hmsPermissions.unmute else false
156
- )
157
- permissions.putBoolean(
158
- "recording",
159
- if (hmsPermissions.recording != null) hmsPermissions.recording else false
160
- )
161
- permissions.putBoolean(
162
- "rtmp",
163
- if (hmsPermissions.rtmp != null) hmsPermissions.rtmp else false
164
- )
165
- permissions.putBoolean(
166
- "changeRole",
167
- if (hmsPermissions.changeRole != null) hmsPermissions.changeRole else false
168
- )
119
+ permissions.putBoolean("endRoom", hmsPermissions.endRoom)
120
+ permissions.putBoolean("removeOthers", hmsPermissions.removeOthers)
121
+ permissions.putBoolean("mute", hmsPermissions.mute)
122
+ permissions.putBoolean("changeRoleForce", hmsPermissions.changeRoleForce)
123
+ permissions.putBoolean("unmute", hmsPermissions.unmute)
124
+ permissions.putBoolean("recording", hmsPermissions.recording)
125
+ permissions.putBoolean("rtmp", hmsPermissions.rtmp)
126
+ permissions.putBoolean("changeRole", hmsPermissions.changeRole)
169
127
  }
170
128
  return permissions
171
129
  }
172
130
 
173
- fun getHmsPublishSettings(hmsPublishSettings: PublishParams?): WritableMap {
131
+ private fun getHmsPublishSettings(hmsPublishSettings: PublishParams?): WritableMap {
174
132
  val publishSettings: WritableMap = Arguments.createMap()
175
- val emptyArray: WritableArray = Arguments.createArray()
176
133
  if (hmsPublishSettings != null) {
177
- publishSettings.putMap("audio", getHmsAudioSettings(hmsPublishSettings.audio))
178
- publishSettings.putMap("video", getHmsVideoSettings(hmsPublishSettings.video))
179
- publishSettings.putMap("screen", getHmsVideoSettings(hmsPublishSettings.screen))
180
- // publishSettings.putMap("videoSimulcastLayers",
181
- // getHmsSimulcastLayers(hmsPublishSettings.videoSimulcastLayers));
182
- // publishSettings.putMap("screenSimulcastLayers",
183
- // getHmsSimulcastLayers(hmsPublishSettings.screenSimulcastLayers));
134
+ publishSettings.putMap("audio", this.getHmsAudioSettings(hmsPublishSettings.audio))
135
+ publishSettings.putMap("video", this.getHmsVideoSettings(hmsPublishSettings.video))
136
+ publishSettings.putMap("screen", this.getHmsVideoSettings(hmsPublishSettings.screen))
184
137
  publishSettings.putMap("videoSimulcastLayers", null)
185
138
  publishSettings.putMap("screenSimulcastLayers", null)
186
- publishSettings.putArray(
187
- "allowed",
188
- if (hmsPublishSettings.allowed != null) getWriteableArray(hmsPublishSettings.allowed)
189
- else emptyArray
190
- )
139
+ publishSettings.putArray("allowed", this.getWriteableArray(hmsPublishSettings.allowed))
191
140
  }
192
141
  return publishSettings
193
142
  }
194
143
 
195
- fun getWriteableArray(array: List<String>?): WritableArray {
144
+ private fun getWriteableArray(array: List<String>?): WritableArray {
196
145
  val decodedArray: WritableArray = Arguments.createArray()
197
146
  if (array != null) {
198
147
  for (value in array) {
@@ -202,165 +151,116 @@ object HmsDecoder {
202
151
  return decodedArray
203
152
  }
204
153
 
205
- fun getHmsAudioSettings(hmsAudioSettings: AudioParams?): WritableMap {
154
+ private fun getHmsAudioSettings(hmsAudioSettings: AudioParams?): WritableMap {
206
155
  val audioSettings: WritableMap = Arguments.createMap()
207
156
  if (hmsAudioSettings != null) {
208
157
  audioSettings.putInt("bitRate", hmsAudioSettings.bitRate)
209
- audioSettings.putString("codec", hmsAudioSettings.codec.toString())
158
+ audioSettings.putString("codec", hmsAudioSettings.codec.name)
210
159
  }
211
160
  return audioSettings
212
161
  }
213
162
 
214
- fun getHmsVideoSettings(hmsVideoSettings: VideoParams?): WritableMap {
163
+ private fun getHmsVideoSettings(hmsVideoSettings: VideoParams?): WritableMap {
215
164
  val videoSettings: WritableMap = Arguments.createMap()
216
165
  if (hmsVideoSettings != null) {
217
166
  videoSettings.putInt("bitRate", hmsVideoSettings.bitRate)
218
167
  videoSettings.putInt("frameRate", hmsVideoSettings.frameRate)
219
168
  videoSettings.putInt("width", hmsVideoSettings.width)
220
169
  videoSettings.putInt("height", hmsVideoSettings.height)
221
- videoSettings.putString("codec", hmsVideoSettings.codec.toString())
170
+ videoSettings.putString("codec", hmsVideoSettings.codec.name)
222
171
  }
223
172
  return videoSettings
224
173
  }
225
174
 
226
- // fun getHmsSimulcastLayers(videoSimulcastLayers: HMSSimulcastSettingsPolicy?): WritableMap {
227
- // val videoLayers: WritableMap = Arguments.createMap();
228
- // if(videoSimulcastLayers != null) {
229
- // videoLayers.putInt("width", videoSimulcastLayers.width);
230
- // videoLayers.putString("height", videoSimulcastLayers.height);
231
- // videoLayers.putArray("layers",
232
- // getHmsSimulcastLayerSettingsPolicy(videoSimulcastLayers.layers));
233
- // }
234
- // return videoLayers;
235
- // }
236
-
237
- // fun getHmsSimulcastLayerSettingsPolicy(layers: HMSSimulcastLayerSettingsPolicy?):
238
- // WritableArray {
239
- // val layersSettingsPolicy: WritableArray = Arguments.createArray();
240
- // val hmsLayersSettingsPolicy: WritableMap = Arguments.createMap();
241
- // if(layers != null) {
242
- // hmsLayersSettingsPolicy.putString("rid", layers.rid);
243
- // hmsLayersSettingsPolicy.putInt("scaleResolutionDownBy", if (layers.scaleResolutionDownBy
244
- // != null) layers.scaleResolutionDownBy else 0);
245
- // hmsLayersSettingsPolicy.putInt("maxBitrate", if (layers.maxBitrate != null)
246
- // layers.maxBitrate else -1);
247
- // hmsLayersSettingsPolicy.putInt("maxFramerate", if (layers.maxFramerate != null)
248
- // layers.maxFramerate else -1);
249
- // }
250
- // layersSettingsPolicy.pushMap(hmsLayersSettingsPolicy)
251
- // return layersSettingsPolicy;
252
- // }
253
-
254
175
  fun getHmsLocalPeer(hmsLocalPeer: HMSLocalPeer?): WritableMap {
255
176
  val peer: WritableMap = Arguments.createMap()
256
177
  if (hmsLocalPeer != null) {
257
178
  peer.putString("peerID", hmsLocalPeer.peerID)
258
179
  peer.putString("name", hmsLocalPeer.name)
259
180
  peer.putBoolean("isLocal", hmsLocalPeer.isLocal)
260
- peer.putString(
261
- "customerUserID",
262
- if (hmsLocalPeer.customerUserID != null) hmsLocalPeer.customerUserID else ""
263
- )
264
- peer.putString("metadata", if (hmsLocalPeer.metadata != null) hmsLocalPeer.metadata else "")
265
- peer.putMap("audioTrack", getHmsAudioTrack(hmsLocalPeer.audioTrack))
266
- peer.putMap("videoTrack", getHmsVideoTrack(hmsLocalPeer.videoTrack))
267
- peer.putMap("role", getHmsRole(hmsLocalPeer.hmsRole))
268
-
269
- var auxiliaryTracks: WritableArray = Arguments.createArray()
270
- for (track in hmsLocalPeer.auxiliaryTracks) {
271
- auxiliaryTracks.pushMap(getHmsTrack(track))
272
- }
273
- peer.putArray("auxiliaryTracks", auxiliaryTracks)
274
-
275
- val localAudioTrack = hmsLocalPeer.audioTrack
276
- var localAudioTrackData: WritableMap = Arguments.createMap()
277
- localAudioTrackData.putString("trackId", localAudioTrack?.trackId)
278
- localAudioTrackData.putString("source", localAudioTrack?.source)
279
- localAudioTrackData.putString("trackDescription", localAudioTrack?.description)
280
- localAudioTrackData.putMap("settings", getHmsAudioTrackSettings(localAudioTrack?.settings))
281
- if (localAudioTrack != null) {
282
- localAudioTrackData.putBoolean("isMute", localAudioTrack.isMute)
283
- }
284
- peer.putMap("localAudioTrackData", localAudioTrackData)
285
-
286
- val localVideoTrack = hmsLocalPeer.videoTrack
287
- var localVideoTrackData: WritableMap = Arguments.createMap()
288
- localVideoTrackData.putString("trackId", localVideoTrack?.trackId)
289
- localVideoTrackData.putString("source", localVideoTrack?.source)
290
- localVideoTrackData.putString("trackDescription", localVideoTrack?.description)
291
- localVideoTrackData.putMap("settings", getHmsVideoTrackSettings(localVideoTrack?.settings))
292
- if (localVideoTrack != null) {
293
- localVideoTrackData.putBoolean("isMute", localVideoTrack.isMute)
294
- }
295
- peer.putMap("localVideoTrackData", localVideoTrackData)
181
+ peer.putString("customerUserID", hmsLocalPeer.customerUserID)
182
+ peer.putString("metadata", hmsLocalPeer.metadata)
183
+ peer.putMap("audioTrack", this.getHmsAudioTrack(hmsLocalPeer.audioTrack))
184
+ peer.putMap("videoTrack", this.getHmsVideoTrack(hmsLocalPeer.videoTrack))
185
+ peer.putMap("role", this.getHmsRole(hmsLocalPeer.hmsRole))
186
+ peer.putArray("auxiliaryTracks", this.getAllTracks(hmsLocalPeer.auxiliaryTracks))
187
+ peer.putMap("localAudioTrackData", this.getHmsLocalAudioTrack(hmsLocalPeer.audioTrack))
188
+ peer.putMap("localVideoTrackData", this.getHmsLocalVideoTrack(hmsLocalPeer.videoTrack))
296
189
  }
297
190
  return peer
298
191
  }
299
192
 
300
- fun getHmsAudioTrackSettings(hmsAudioTrackSettings: HMSAudioTrackSettings?): WritableMap {
193
+ private fun getHmsLocalAudioTrack(track: HMSLocalAudioTrack?): WritableMap {
194
+ val hmsTrack: WritableMap = Arguments.createMap()
195
+ if (track != null) {
196
+ hmsTrack.putDouble("volume", track.volume)
197
+ hmsTrack.putMap("settings", this.getHmsAudioTrackSettings(track.settings))
198
+ hmsTrack.putString("trackId", track.trackId)
199
+ hmsTrack.putString("source", track.source)
200
+ hmsTrack.putString("trackDescription", track.description)
201
+ hmsTrack.putBoolean("isMute", track.isMute)
202
+ hmsTrack.putString("type", track.type.name)
203
+ }
204
+ return hmsTrack
205
+ }
206
+
207
+ private fun getHmsLocalVideoTrack(track: HMSLocalVideoTrack?): WritableMap {
208
+ val hmsTrack: WritableMap = Arguments.createMap()
209
+ if (track != null) {
210
+ hmsTrack.putBoolean("isDegraded", track.isDegraded)
211
+ hmsTrack.putMap("settings", this.getHmsVideoTrackSettings(track.settings))
212
+ hmsTrack.putString("trackId", track.trackId)
213
+ hmsTrack.putString("source", track.source)
214
+ hmsTrack.putString("trackDescription", track.description)
215
+ hmsTrack.putBoolean("isMute", track.isMute)
216
+ hmsTrack.putString("type", track.type.name)
217
+ }
218
+ return hmsTrack
219
+ }
220
+
221
+ private fun getHmsAudioTrackSettings(hmsAudioTrackSettings: HMSAudioTrackSettings?): WritableMap {
301
222
  val settings: WritableMap = Arguments.createMap()
302
223
  if (hmsAudioTrackSettings != null) {
303
224
  settings.putInt("maxBitrate", hmsAudioTrackSettings.maxBitrate)
304
- // settings.putString("trackDescription", hmsAudioTrackSettings.trackDescription);
225
+ settings.putDouble("volume", hmsAudioTrackSettings.volume)
226
+ settings.putBoolean(
227
+ "useHardwareAcousticEchoCanceler",
228
+ hmsAudioTrackSettings.useHardwareAcousticEchoCanceler
229
+ )
230
+ settings.putString("codec", hmsAudioTrackSettings.codec.name)
305
231
  settings.putString("trackDescription", "")
306
232
  }
307
233
  return settings
308
234
  }
309
235
 
310
- fun getHmsVideoTrackSettings(hmsVideoTrackSettings: HMSVideoTrackSettings?): WritableMap {
236
+ private fun getHmsVideoTrackSettings(hmsVideoTrackSettings: HMSVideoTrackSettings?): WritableMap {
311
237
  val settings: WritableMap = Arguments.createMap()
312
238
  if (hmsVideoTrackSettings != null) {
313
- settings.putString("codec", getHmsVideoTrackCodec(hmsVideoTrackSettings.codec))
314
-
315
- val resolution: WritableMap = Arguments.createMap()
316
- resolution.putInt("height", hmsVideoTrackSettings.resolution.height)
317
- resolution.putInt("width", hmsVideoTrackSettings.resolution.width)
318
- settings.putMap("resolution", resolution)
319
-
239
+ settings.putString("codec", hmsVideoTrackSettings.codec.name)
320
240
  settings.putInt("maxBitrate", hmsVideoTrackSettings.maxBitRate)
321
241
  settings.putInt("maxFrameRate", hmsVideoTrackSettings.maxFrameRate)
322
- settings.putString(
323
- "cameraFacing",
324
- getHmsVideoTrackCameraFacing(hmsVideoTrackSettings.cameraFacing)
242
+ settings.putString("cameraFacing", hmsVideoTrackSettings.cameraFacing.name)
243
+ settings.putString("trackDescription", hmsVideoTrackSettings.codec.name)
244
+ settings.putMap(
245
+ "resolution",
246
+ this.getHmsVideoTrackResolution(hmsVideoTrackSettings.resolution)
325
247
  )
326
- // settings.putString("trackDescription",
327
- // if(hmsVideoTrackSettings.trackDescription!==null)hmsVideoTrackSettings.trackDescription
328
- // else "");
329
- settings.putString("trackDescription", "")
330
248
  }
331
249
  return settings
332
250
  }
333
251
 
334
- fun getHmsVideoTrackCodec(codec: HMSVideoCodec): String {
335
- return when (codec) {
336
- HMSVideoCodec.H264 -> {
337
- "h264"
338
- }
339
- HMSVideoCodec.VP9 -> {
340
- "vp9"
341
- }
342
- HMSVideoCodec.VP8 -> {
343
- "vp8"
344
- }
345
- }
346
- }
347
-
348
- fun getHmsVideoTrackCameraFacing(cameraFacing: HMSVideoTrackSettings.CameraFacing): String {
349
- return when (cameraFacing) {
350
- HMSVideoTrackSettings.CameraFacing.FRONT -> {
351
- "FRONT"
352
- }
353
- HMSVideoTrackSettings.CameraFacing.BACK -> {
354
- "BACK"
355
- }
356
- }
252
+ private fun getHmsVideoTrackResolution(hmsResolution: HMSVideoResolution): WritableMap {
253
+ val resolution: WritableMap = Arguments.createMap()
254
+ resolution.putInt("height", hmsResolution.height)
255
+ resolution.putInt("width", hmsResolution.width)
256
+ return resolution
357
257
  }
358
258
 
359
259
  fun getHmsRemotePeers(remotePeers: Array<HMSRemotePeer>?): WritableArray {
360
260
  val peers: WritableArray = Arguments.createArray()
361
261
  if (remotePeers != null) {
362
262
  for (peer in remotePeers) {
363
- peers.pushMap(getHmsRemotePeer(peer))
263
+ peers.pushMap(this.getHmsRemotePeer(peer))
364
264
  }
365
265
  }
366
266
  return peers
@@ -372,70 +272,54 @@ object HmsDecoder {
372
272
  peer.putString("peerID", hmsRemotePeer.peerID)
373
273
  peer.putString("name", hmsRemotePeer.name)
374
274
  peer.putBoolean("isLocal", hmsRemotePeer.isLocal)
375
- peer.putString(
376
- "customerUserID",
377
- if (hmsRemotePeer.customerUserID != null) hmsRemotePeer.customerUserID else ""
378
- )
379
- peer.putString("metadata", if (hmsRemotePeer.metadata != null) hmsRemotePeer.metadata else "")
380
- peer.putMap("audioTrack", getHmsAudioTrack(hmsRemotePeer.audioTrack))
381
- peer.putMap("videoTrack", getHmsVideoTrack(hmsRemotePeer.videoTrack))
382
- peer.putMap("role", getHmsRole(hmsRemotePeer.hmsRole))
383
-
384
- var auxiliaryTracks: WritableArray = Arguments.createArray()
385
- for (track in hmsRemotePeer.auxiliaryTracks) {
386
- auxiliaryTracks.pushMap(getHmsTrack(track))
387
- }
388
- peer.putArray("auxiliaryTracks", auxiliaryTracks)
389
-
390
- val remoteAudioTrack = hmsRemotePeer.audioTrack
391
- var remoteAudioTrackData: WritableMap = Arguments.createMap()
392
- remoteAudioTrackData.putString("trackId", remoteAudioTrack?.trackId)
393
- remoteAudioTrackData.putString("source", remoteAudioTrack?.source)
394
- remoteAudioTrackData.putString("trackDescription", remoteAudioTrack?.description)
395
- if (remoteAudioTrack != null) {
396
- remoteAudioTrackData.putBoolean("playbackAllowed", remoteAudioTrack.isPlaybackAllowed)
397
- remoteAudioTrackData.putBoolean("isMute", remoteAudioTrack.isMute)
398
- }
399
- // remoteAudioTrackData.putMap("settings",
400
- // getHmsAudioTrackSettings(remoteAudioTrack.settings));
401
- remoteAudioTrackData.putMap("settings", null)
402
- peer.putMap("remoteAudioTrackData", remoteAudioTrackData)
403
-
404
- val remoteVideoTrack = hmsRemotePeer.videoTrack
405
- var remoteVideoTrackData: WritableMap = Arguments.createMap()
406
- remoteVideoTrackData.putString("trackId", remoteVideoTrack?.trackId)
407
- remoteVideoTrackData.putString("source", remoteVideoTrack?.source)
408
- remoteVideoTrackData.putString("trackDescription", remoteVideoTrack?.description)
409
- if (remoteVideoTrack != null) {
410
- remoteVideoTrackData.putBoolean("playbackAllowed", remoteVideoTrack.isPlaybackAllowed)
411
- remoteVideoTrackData.putBoolean("isMute", remoteVideoTrack.isMute)
412
- }
413
- // remoteVideoTrackData.putMap("settings",
414
- // getHmsVideoTrackSettings(remoteVideoTrack.settings));
415
- remoteVideoTrackData.putMap("settings", null)
416
- peer.putMap("remoteVideoTrackData", remoteVideoTrackData)
275
+ peer.putString("customerUserID", hmsRemotePeer.customerUserID)
276
+ peer.putString("metadata", hmsRemotePeer.metadata)
277
+ peer.putMap("audioTrack", this.getHmsAudioTrack(hmsRemotePeer.audioTrack))
278
+ peer.putMap("videoTrack", this.getHmsVideoTrack(hmsRemotePeer.videoTrack))
279
+ peer.putMap("role", this.getHmsRole(hmsRemotePeer.hmsRole))
280
+ peer.putArray("auxiliaryTracks", this.getAllTracks(hmsRemotePeer.auxiliaryTracks))
281
+ peer.putMap("remoteAudioTrackData", this.getHmsRemoteAudioTrack(hmsRemotePeer.audioTrack))
282
+ peer.putMap("remoteVideoTrackData", this.getHmsRemoteVideoTrack(hmsRemotePeer.videoTrack))
417
283
  }
418
284
  return peer
419
285
  }
420
286
 
287
+ private fun getHmsRemoteAudioTrack(track: HMSRemoteAudioTrack?): WritableMap {
288
+ val hmsTrack: WritableMap = Arguments.createMap()
289
+ if (track != null) {
290
+ hmsTrack.putBoolean("isPlaybackAllowed", track.isPlaybackAllowed)
291
+ hmsTrack.putString("trackId", track.trackId)
292
+ hmsTrack.putString("source", track.source)
293
+ hmsTrack.putString("trackDescription", track.description)
294
+ hmsTrack.putBoolean("isMute", track.isMute)
295
+ hmsTrack.putString("type", track.type.name)
296
+ }
297
+ return hmsTrack
298
+ }
299
+
300
+ private fun getHmsRemoteVideoTrack(track: HMSRemoteVideoTrack?): WritableMap {
301
+ val hmsTrack: WritableMap = Arguments.createMap()
302
+ if (track != null) {
303
+ hmsTrack.putBoolean("isDegraded", track.isDegraded)
304
+ hmsTrack.putBoolean("isPlaybackAllowed", track.isPlaybackAllowed)
305
+ hmsTrack.putString("trackId", track.trackId)
306
+ hmsTrack.putString("source", track.source)
307
+ hmsTrack.putString("trackDescription", track.description)
308
+ hmsTrack.putBoolean("isMute", track.isMute)
309
+ hmsTrack.putString("type", track.type.name)
310
+ }
311
+ return hmsTrack
312
+ }
313
+
421
314
  fun getPreviewTracks(tracks: Array<HMSTrack>?): WritableMap {
422
315
  val hmsTracks: WritableMap = Arguments.createMap()
423
316
  if (tracks != null) {
424
317
  for (track: HMSTrack in tracks) {
425
318
  if (track is HMSLocalVideoTrack) {
426
- val localVideoTrackData: WritableMap = Arguments.createMap()
427
- localVideoTrackData.putString("trackId", track.trackId)
428
- localVideoTrackData.putString("source", track.source)
429
- localVideoTrackData.putString("trackDescription", track.description)
430
- localVideoTrackData.putMap("settings", getHmsVideoTrackSettings(track.settings))
431
- hmsTracks.putMap("videoTrack", localVideoTrackData)
319
+ hmsTracks.putMap("videoTrack", this.getHmsLocalVideoTrack(track))
432
320
  }
433
321
  if (track is HMSLocalAudioTrack) {
434
- val localAudioTrackData: WritableMap = Arguments.createMap()
435
- localAudioTrackData.putString("trackId", track.trackId)
436
- localAudioTrackData.putString("source", track.source)
437
- localAudioTrackData.putMap("settings", getHmsAudioTrackSettings(track.settings))
438
- hmsTracks.putMap("audioTrack", localAudioTrackData)
322
+ hmsTracks.putMap("audioTrack", this.getHmsLocalAudioTrack(track))
439
323
  }
440
324
  }
441
325
  }
@@ -445,19 +329,20 @@ object HmsDecoder {
445
329
  fun getHmsRoleChangeRequest(request: HMSRoleChangeRequest, id: String?): WritableMap {
446
330
  val roleChangeRequest: WritableMap = Arguments.createMap()
447
331
  if (id != null) {
448
- roleChangeRequest.putMap("requestedBy", getHmsPeer(request.requestedBy))
449
- roleChangeRequest.putMap("suggestedRole", getHmsRole(request.suggestedRole))
332
+ roleChangeRequest.putMap("requestedBy", this.getHmsPeer(request.requestedBy))
333
+ roleChangeRequest.putMap("suggestedRole", this.getHmsRole(request.suggestedRole))
450
334
  roleChangeRequest.putString("id", id)
451
335
  return roleChangeRequest
452
336
  }
453
337
  return roleChangeRequest
454
338
  }
455
339
 
456
- fun getHmsChangeTrackStateRequest(request: HMSChangeTrackStateRequest): WritableMap {
340
+ fun getHmsChangeTrackStateRequest(request: HMSChangeTrackStateRequest, id: String): WritableMap {
457
341
  val changeTrackStateRequest: WritableMap = Arguments.createMap()
458
342
 
459
- changeTrackStateRequest.putMap("requestedBy", getHmsPeer(request.requestedBy))
343
+ changeTrackStateRequest.putMap("requestedBy", this.getHmsPeer(request.requestedBy))
460
344
  changeTrackStateRequest.putString("trackType", request.track.type.name)
345
+ changeTrackStateRequest.putString("id", id)
461
346
 
462
347
  return changeTrackStateRequest
463
348
  }
@@ -475,7 +360,7 @@ object HmsDecoder {
475
360
  return decodedError
476
361
  }
477
362
 
478
- fun getHMSBrowserRecordingState(data: HMSBrowserRecordingState?): ReadableMap {
363
+ private fun getHMSBrowserRecordingState(data: HMSBrowserRecordingState?): ReadableMap {
479
364
  val input = Arguments.createMap()
480
365
  if (data !== null) {
481
366
  input.putBoolean("running", data.running)
@@ -484,7 +369,7 @@ object HmsDecoder {
484
369
  return input
485
370
  }
486
371
 
487
- fun getHMSRtmpStreamingState(data: HMSRtmpStreamingState?): ReadableMap {
372
+ private fun getHMSRtmpStreamingState(data: HMSRtmpStreamingState?): ReadableMap {
488
373
  val input = Arguments.createMap()
489
374
  if (data !== null) {
490
375
  input.putBoolean("running", data.running)
@@ -493,7 +378,7 @@ object HmsDecoder {
493
378
  return input
494
379
  }
495
380
 
496
- fun getHMSServerRecordingState(data: HMSServerRecordingState?): ReadableMap {
381
+ private fun getHMSServerRecordingState(data: HMSServerRecordingState?): ReadableMap {
497
382
  val input = Arguments.createMap()
498
383
  if (data !== null) {
499
384
  input.putBoolean("running", data.running)
@@ -501,4 +386,63 @@ object HmsDecoder {
501
386
  }
502
387
  return input
503
388
  }
389
+
390
+ private fun getHmsSubscribeSettings(hmsSubscribeSettings: SubscribeParams?): WritableMap {
391
+ val subscribeSettings: WritableMap = Arguments.createMap()
392
+ if (hmsSubscribeSettings != null) {
393
+ subscribeSettings.putInt("maxSubsBitRate", hmsSubscribeSettings.maxSubsBitRate)
394
+ subscribeSettings.putMap(
395
+ "subscribeDegradationParam",
396
+ this.getHmsSubscribeDegradationSettings(hmsSubscribeSettings.subscribeDegradationParam)
397
+ )
398
+ subscribeSettings.putArray(
399
+ "subscribeTo",
400
+ this.getWriteableArray(hmsSubscribeSettings.subscribeTo)
401
+ )
402
+ }
403
+ return subscribeSettings
404
+ }
405
+
406
+ private fun getHmsSubscribeDegradationSettings(
407
+ hmsSubscribeDegradationParams: SubscribeDegradationParams?
408
+ ): WritableMap {
409
+ val subscribeDegradationParams: WritableMap = Arguments.createMap()
410
+ if (hmsSubscribeDegradationParams != null) {
411
+ subscribeDegradationParams.putString(
412
+ "degradeGracePeriodSeconds",
413
+ hmsSubscribeDegradationParams.degradeGracePeriodSeconds.toString()
414
+ )
415
+ subscribeDegradationParams.putString(
416
+ "packetLossThreshold",
417
+ hmsSubscribeDegradationParams.packetLossThreshold.toString()
418
+ )
419
+ subscribeDegradationParams.putString(
420
+ "recoverGracePeriodSeconds",
421
+ hmsSubscribeDegradationParams.recoverGracePeriodSeconds.toString()
422
+ )
423
+ }
424
+ return subscribeDegradationParams
425
+ }
426
+
427
+ private fun getAllPeers(peers: Array<HMSPeer>?): WritableArray {
428
+ val decodedPeers: WritableArray = Arguments.createArray()
429
+ if (peers != null) {
430
+ for (peer in peers) {
431
+ val decodedPeer = this.getHmsPeer(peer)
432
+ decodedPeers.pushMap(decodedPeer)
433
+ }
434
+ }
435
+ return decodedPeers
436
+ }
437
+
438
+ private fun getAllTracks(tracks: MutableList<HMSTrack>?): WritableArray {
439
+ val decodedTracks: WritableArray = Arguments.createArray()
440
+ if (tracks != null) {
441
+ for (track in tracks) {
442
+ val decodedTrack = this.getHmsTrack(track)
443
+ decodedTracks.pushMap(decodedTrack)
444
+ }
445
+ }
446
+ return decodedTracks
447
+ }
504
448
  }