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