@100mslive/react-native-hms 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +12 -0
- package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +96 -0
- package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +2 -72
- package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +2 -26
- package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +0 -2
- package/ios/HmsDecoder.swift +12 -2
- package/ios/HmsSDK.swift +9 -4
- package/lib/commonjs/classes/HMSConfig.js +3 -0
- package/lib/commonjs/classes/HMSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +16 -1
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSNetworkQuality.js +20 -0
- package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -0
- package/lib/commonjs/classes/HMSPeer.js +3 -0
- package/lib/commonjs/classes/HMSPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPeerUpdate.js +1 -0
- package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
- package/lib/commonjs/index.js +14 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSConfig.js +3 -0
- package/lib/module/classes/HMSConfig.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +15 -1
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSLocalPeer.js.map +1 -1
- package/lib/module/classes/HMSNetworkQuality.js +11 -0
- package/lib/module/classes/HMSNetworkQuality.js.map +1 -0
- package/lib/module/classes/HMSPeer.js +3 -0
- package/lib/module/classes/HMSPeer.js.map +1 -1
- package/lib/module/classes/HMSPeerUpdate.js +1 -0
- package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/module/classes/HMSRemotePeer.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSConfig.d.ts +2 -0
- package/lib/typescript/classes/HMSEncoder.d.ts +2 -0
- package/lib/typescript/classes/HMSLocalPeer.d.ts +2 -0
- package/lib/typescript/classes/HMSNetworkQuality.d.ts +6 -0
- package/lib/typescript/classes/HMSPeer.d.ts +3 -0
- package/lib/typescript/classes/HMSPeerUpdate.d.ts +2 -1
- package/lib/typescript/classes/HMSRemotePeer.d.ts +2 -0
- package/lib/typescript/index.d.ts +1 -0
- package/package.json +1 -1
- package/react-native-hms.podspec +1 -1
- package/src/classes/HMSConfig.ts +3 -0
- package/src/classes/HMSEncoder.ts +15 -1
- package/src/classes/HMSLocalPeer.ts +2 -0
- package/src/classes/HMSNetworkQuality.ts +7 -0
- package/src/classes/HMSPeer.ts +4 -2
- package/src/classes/HMSPeerUpdate.ts +1 -0
- package/src/classes/HMSRemotePeer.ts +2 -0
- package/src/index.ts +1 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package com.reactnativehmssdk
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.*
|
|
4
|
+
import live.hms.video.connection.stats.quality.HMSNetworkQuality
|
|
4
5
|
import live.hms.video.error.HMSException
|
|
5
6
|
import live.hms.video.media.settings.HMSAudioTrackSettings
|
|
6
7
|
import live.hms.video.media.settings.HMSVideoResolution
|
|
@@ -47,6 +48,7 @@ object HmsDecoder {
|
|
|
47
48
|
peer.putBoolean("isLocal", hmsPeer.isLocal)
|
|
48
49
|
peer.putString("customerUserID", hmsPeer.customerUserID)
|
|
49
50
|
peer.putString("metadata", hmsPeer.metadata)
|
|
51
|
+
peer.putMap("networkQuality", this.getHmsNetworkQuality(hmsPeer.networkQuality))
|
|
50
52
|
peer.putMap("audioTrack", this.getHmsAudioTrack(hmsPeer.audioTrack))
|
|
51
53
|
peer.putMap("videoTrack", this.getHmsVideoTrack(hmsPeer.videoTrack))
|
|
52
54
|
peer.putMap("role", this.getHmsRole(hmsPeer.hmsRole))
|
|
@@ -182,6 +184,7 @@ object HmsDecoder {
|
|
|
182
184
|
peer.putBoolean("isLocal", hmsLocalPeer.isLocal)
|
|
183
185
|
peer.putString("customerUserID", hmsLocalPeer.customerUserID)
|
|
184
186
|
peer.putString("metadata", hmsLocalPeer.metadata)
|
|
187
|
+
peer.putMap("networkQuality", this.getHmsNetworkQuality(hmsLocalPeer.networkQuality))
|
|
185
188
|
peer.putMap("audioTrack", this.getHmsAudioTrack(hmsLocalPeer.audioTrack))
|
|
186
189
|
peer.putMap("videoTrack", this.getHmsVideoTrack(hmsLocalPeer.videoTrack))
|
|
187
190
|
peer.putMap("role", this.getHmsRole(hmsLocalPeer.hmsRole))
|
|
@@ -276,6 +279,7 @@ object HmsDecoder {
|
|
|
276
279
|
peer.putBoolean("isLocal", hmsRemotePeer.isLocal)
|
|
277
280
|
peer.putString("customerUserID", hmsRemotePeer.customerUserID)
|
|
278
281
|
peer.putString("metadata", hmsRemotePeer.metadata)
|
|
282
|
+
peer.putMap("networkQuality", this.getHmsNetworkQuality(hmsRemotePeer.networkQuality))
|
|
279
283
|
peer.putMap("audioTrack", this.getHmsAudioTrack(hmsRemotePeer.audioTrack))
|
|
280
284
|
peer.putMap("videoTrack", this.getHmsVideoTrack(hmsRemotePeer.videoTrack))
|
|
281
285
|
peer.putMap("role", this.getHmsRole(hmsRemotePeer.hmsRole))
|
|
@@ -508,4 +512,12 @@ object HmsDecoder {
|
|
|
508
512
|
}
|
|
509
513
|
return hmsRecipient
|
|
510
514
|
}
|
|
515
|
+
|
|
516
|
+
private fun getHmsNetworkQuality(networkQuality: HMSNetworkQuality?): WritableMap {
|
|
517
|
+
val hmsNetworkQuality: WritableMap = Arguments.createMap()
|
|
518
|
+
if (networkQuality != null) {
|
|
519
|
+
hmsNetworkQuality.putInt("downlinkQuality", networkQuality.downlinkQuality)
|
|
520
|
+
}
|
|
521
|
+
return hmsNetworkQuality
|
|
522
|
+
}
|
|
511
523
|
}
|
|
@@ -307,4 +307,100 @@ object HmsHelper {
|
|
|
307
307
|
}
|
|
308
308
|
return meetingURLVariant
|
|
309
309
|
}
|
|
310
|
+
|
|
311
|
+
fun getHmsConfig(credentials: ReadableMap): HMSConfig {
|
|
312
|
+
var config =
|
|
313
|
+
HMSConfig(
|
|
314
|
+
credentials.getString("username") as String,
|
|
315
|
+
credentials.getString("authToken") as String,
|
|
316
|
+
)
|
|
317
|
+
|
|
318
|
+
when {
|
|
319
|
+
areAllRequiredKeysAvailable(
|
|
320
|
+
credentials,
|
|
321
|
+
arrayOf(
|
|
322
|
+
Pair("endpoint", "String"),
|
|
323
|
+
Pair("metadata", "String"),
|
|
324
|
+
Pair("captureNetworkQualityInPreview", "Boolean")
|
|
325
|
+
)
|
|
326
|
+
) -> {
|
|
327
|
+
config =
|
|
328
|
+
HMSConfig(
|
|
329
|
+
credentials.getString("username") as String,
|
|
330
|
+
credentials.getString("authToken") as String,
|
|
331
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
332
|
+
metadata = credentials.getString("metadata") as String,
|
|
333
|
+
captureNetworkQualityInPreview =
|
|
334
|
+
credentials.getBoolean("captureNetworkQualityInPreview"),
|
|
335
|
+
)
|
|
336
|
+
}
|
|
337
|
+
areAllRequiredKeysAvailable(
|
|
338
|
+
credentials,
|
|
339
|
+
arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
|
|
340
|
+
) -> {
|
|
341
|
+
config =
|
|
342
|
+
HMSConfig(
|
|
343
|
+
credentials.getString("username") as String,
|
|
344
|
+
credentials.getString("authToken") as String,
|
|
345
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
346
|
+
metadata = credentials.getString("metadata") as String,
|
|
347
|
+
)
|
|
348
|
+
}
|
|
349
|
+
areAllRequiredKeysAvailable(
|
|
350
|
+
credentials,
|
|
351
|
+
arrayOf(Pair("endpoint", "String"), Pair("captureNetworkQualityInPreview", "Boolean"))
|
|
352
|
+
) -> {
|
|
353
|
+
config =
|
|
354
|
+
HMSConfig(
|
|
355
|
+
credentials.getString("username") as String,
|
|
356
|
+
credentials.getString("authToken") as String,
|
|
357
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
358
|
+
captureNetworkQualityInPreview =
|
|
359
|
+
credentials.getBoolean("captureNetworkQualityInPreview"),
|
|
360
|
+
)
|
|
361
|
+
}
|
|
362
|
+
areAllRequiredKeysAvailable(
|
|
363
|
+
credentials,
|
|
364
|
+
arrayOf(Pair("metadata", "String"), Pair("captureNetworkQualityInPreview", "Boolean"))
|
|
365
|
+
) -> {
|
|
366
|
+
config =
|
|
367
|
+
HMSConfig(
|
|
368
|
+
credentials.getString("username") as String,
|
|
369
|
+
credentials.getString("authToken") as String,
|
|
370
|
+
metadata = credentials.getString("metadata") as String,
|
|
371
|
+
captureNetworkQualityInPreview =
|
|
372
|
+
credentials.getBoolean("captureNetworkQualityInPreview"),
|
|
373
|
+
)
|
|
374
|
+
}
|
|
375
|
+
areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
|
|
376
|
+
config =
|
|
377
|
+
HMSConfig(
|
|
378
|
+
credentials.getString("username") as String,
|
|
379
|
+
credentials.getString("authToken") as String,
|
|
380
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
381
|
+
)
|
|
382
|
+
}
|
|
383
|
+
areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
|
|
384
|
+
config =
|
|
385
|
+
HMSConfig(
|
|
386
|
+
credentials.getString("username") as String,
|
|
387
|
+
credentials.getString("authToken") as String,
|
|
388
|
+
metadata = credentials.getString("metadata") as String,
|
|
389
|
+
)
|
|
390
|
+
}
|
|
391
|
+
areAllRequiredKeysAvailable(
|
|
392
|
+
credentials,
|
|
393
|
+
arrayOf(Pair("captureNetworkQualityInPreview", "Boolean"))
|
|
394
|
+
) -> {
|
|
395
|
+
config =
|
|
396
|
+
HMSConfig(
|
|
397
|
+
credentials.getString("username") as String,
|
|
398
|
+
credentials.getString("authToken") as String,
|
|
399
|
+
captureNetworkQualityInPreview =
|
|
400
|
+
credentials.getBoolean("captureNetworkQualityInPreview")
|
|
401
|
+
)
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
return config
|
|
405
|
+
}
|
|
310
406
|
}
|
|
@@ -97,42 +97,7 @@ class HmsSDK(
|
|
|
97
97
|
)
|
|
98
98
|
if (requiredKeys) {
|
|
99
99
|
previewInProgress = true
|
|
100
|
-
|
|
101
|
-
HMSConfig(
|
|
102
|
-
credentials.getString("username") as String,
|
|
103
|
-
credentials.getString("authToken") as String,
|
|
104
|
-
)
|
|
105
|
-
|
|
106
|
-
when {
|
|
107
|
-
HmsHelper.areAllRequiredKeysAvailable(
|
|
108
|
-
credentials,
|
|
109
|
-
arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
|
|
110
|
-
) -> {
|
|
111
|
-
config =
|
|
112
|
-
HMSConfig(
|
|
113
|
-
credentials.getString("username") as String,
|
|
114
|
-
credentials.getString("authToken") as String,
|
|
115
|
-
initEndpoint = credentials.getString("endpoint") as String,
|
|
116
|
-
metadata = credentials.getString("metadata") as String,
|
|
117
|
-
)
|
|
118
|
-
}
|
|
119
|
-
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
|
|
120
|
-
config =
|
|
121
|
-
HMSConfig(
|
|
122
|
-
credentials.getString("username") as String,
|
|
123
|
-
credentials.getString("authToken") as String,
|
|
124
|
-
initEndpoint = credentials.getString("endpoint") as String,
|
|
125
|
-
)
|
|
126
|
-
}
|
|
127
|
-
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
|
|
128
|
-
config =
|
|
129
|
-
HMSConfig(
|
|
130
|
-
credentials.getString("username") as String,
|
|
131
|
-
credentials.getString("authToken") as String,
|
|
132
|
-
metadata = credentials.getString("metadata") as String,
|
|
133
|
-
)
|
|
134
|
-
}
|
|
135
|
-
}
|
|
100
|
+
val config = HmsHelper.getHmsConfig(credentials)
|
|
136
101
|
|
|
137
102
|
hmsSDK?.preview(
|
|
138
103
|
config,
|
|
@@ -217,42 +182,7 @@ class HmsSDK(
|
|
|
217
182
|
arrayOf(Pair("username", "String"), Pair("authToken", "String"))
|
|
218
183
|
)
|
|
219
184
|
if (requiredKeys) {
|
|
220
|
-
|
|
221
|
-
HMSConfig(
|
|
222
|
-
credentials.getString("username") as String,
|
|
223
|
-
credentials.getString("authToken") as String
|
|
224
|
-
)
|
|
225
|
-
|
|
226
|
-
when {
|
|
227
|
-
HmsHelper.areAllRequiredKeysAvailable(
|
|
228
|
-
credentials,
|
|
229
|
-
arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
|
|
230
|
-
) -> {
|
|
231
|
-
config =
|
|
232
|
-
HMSConfig(
|
|
233
|
-
credentials.getString("username") as String,
|
|
234
|
-
credentials.getString("authToken") as String,
|
|
235
|
-
initEndpoint = credentials.getString("endpoint") as String,
|
|
236
|
-
metadata = credentials.getString("metadata") as String,
|
|
237
|
-
)
|
|
238
|
-
}
|
|
239
|
-
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
|
|
240
|
-
config =
|
|
241
|
-
HMSConfig(
|
|
242
|
-
credentials.getString("username") as String,
|
|
243
|
-
credentials.getString("authToken") as String,
|
|
244
|
-
initEndpoint = credentials.getString("endpoint") as String,
|
|
245
|
-
)
|
|
246
|
-
}
|
|
247
|
-
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
|
|
248
|
-
config =
|
|
249
|
-
HMSConfig(
|
|
250
|
-
credentials.getString("username") as String,
|
|
251
|
-
credentials.getString("authToken") as String,
|
|
252
|
-
metadata = credentials.getString("metadata") as String,
|
|
253
|
-
)
|
|
254
|
-
}
|
|
255
|
-
}
|
|
185
|
+
val config = HmsHelper.getHmsConfig(credentials)
|
|
256
186
|
|
|
257
187
|
HMSCoroutineScope.launch {
|
|
258
188
|
try {
|
|
@@ -8,8 +8,8 @@ import com.facebook.react.bridge.Arguments
|
|
|
8
8
|
import com.facebook.react.bridge.ReactContext
|
|
9
9
|
import com.facebook.react.bridge.WritableMap
|
|
10
10
|
import com.facebook.react.uimanager.events.RCTEventEmitter
|
|
11
|
-
import live.hms.video.media.tracks.HMSTrackType
|
|
12
11
|
import live.hms.video.media.tracks.HMSVideoTrack
|
|
12
|
+
import live.hms.video.utils.HmsUtilities
|
|
13
13
|
import live.hms.video.utils.SharedEglContext
|
|
14
14
|
import org.webrtc.RendererCommon
|
|
15
15
|
import org.webrtc.SurfaceViewRenderer
|
|
@@ -18,7 +18,6 @@ import org.webrtc.SurfaceViewRenderer
|
|
|
18
18
|
class HmsView(context: ReactContext) : FrameLayout(context) {
|
|
19
19
|
private var surfaceView: SurfaceViewRenderer = SurfaceViewRenderer(context)
|
|
20
20
|
private var videoTrack: HMSVideoTrack? = null
|
|
21
|
-
private var localTrack: String? = null
|
|
22
21
|
private var scaleTypeApplied: Boolean = false
|
|
23
22
|
private var currentScaleType: RendererCommon.ScalingType =
|
|
24
23
|
RendererCommon.ScalingType.SCALE_ASPECT_FILL
|
|
@@ -91,36 +90,13 @@ class HmsView(context: ReactContext) : FrameLayout(context) {
|
|
|
91
90
|
if (id != null) {
|
|
92
91
|
sdkId = id
|
|
93
92
|
}
|
|
94
|
-
|
|
95
93
|
val hms = hmsCollection[sdkId]?.hmsSDK
|
|
96
94
|
|
|
97
95
|
if (trackId != null && hms != null) {
|
|
98
96
|
if (mirror != null) {
|
|
99
97
|
surfaceView.setMirror(mirror)
|
|
100
98
|
}
|
|
101
|
-
|
|
102
|
-
val localTrackId = hms.getLocalPeer()?.videoTrack?.trackId
|
|
103
|
-
if (localTrackId == localTrack) {
|
|
104
|
-
videoTrack = hms.getLocalPeer()?.videoTrack
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
val remotePeers = hms.getRemotePeers()
|
|
108
|
-
for (peer in remotePeers) {
|
|
109
|
-
val videoTrackId = peer.videoTrack?.trackId
|
|
110
|
-
|
|
111
|
-
val auxiliaryTracks = peer.auxiliaryTracks
|
|
112
|
-
for (track in auxiliaryTracks) {
|
|
113
|
-
val auxTrackId = track.trackId
|
|
114
|
-
if (trackId == auxTrackId && track.type == HMSTrackType.VIDEO && !track.isMute) {
|
|
115
|
-
videoTrack = track as HMSVideoTrack
|
|
116
|
-
return
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
if (videoTrackId == localTrack) {
|
|
120
|
-
videoTrack = peer.videoTrack
|
|
121
|
-
return
|
|
122
|
-
}
|
|
123
|
-
}
|
|
99
|
+
videoTrack = hms.getRoom()?.let { HmsUtilities.getVideoTrack(trackId, it) }
|
|
124
100
|
}
|
|
125
101
|
}
|
|
126
102
|
}
|
|
@@ -31,14 +31,12 @@ class HmssdkViewManager : SimpleViewManager<HmsView>() {
|
|
|
31
31
|
@ReactProp(name = "data")
|
|
32
32
|
fun setData(view: HmsView, data: ReadableMap) {
|
|
33
33
|
val trackId = data.getString("trackId")
|
|
34
|
-
// val sink = data.getBoolean("sink")
|
|
35
34
|
val id = data.getString("id")
|
|
36
35
|
val mirror = data.getBoolean("mirror")
|
|
37
36
|
val hmsCollection = getHms()
|
|
38
37
|
if (hmsCollection != null) {
|
|
39
38
|
view.setData(id, trackId, hmsCollection, mirror)
|
|
40
39
|
}
|
|
41
|
-
// do the processing here
|
|
42
40
|
}
|
|
43
41
|
|
|
44
42
|
@ReactProp(name = "scaleType")
|
package/ios/HmsDecoder.swift
CHANGED
|
@@ -37,6 +37,7 @@ class HmsDecoder: NSObject {
|
|
|
37
37
|
let audioTrack = getHmsAudioTrack(peer.audioTrack)
|
|
38
38
|
let videoTrack = getHmsVideoTrack(peer.videoTrack)
|
|
39
39
|
let role = getHmsRole(peer.role)
|
|
40
|
+
let networkQuality = getHmsNetworkQuality(peer.networkQuality)
|
|
40
41
|
|
|
41
42
|
let auxiliaryTracks = getAllTracks(peer.auxiliaryTracks ?? [] )
|
|
42
43
|
|
|
@@ -49,6 +50,7 @@ class HmsDecoder: NSObject {
|
|
|
49
50
|
"audioTrack": audioTrack,
|
|
50
51
|
"videoTrack": videoTrack,
|
|
51
52
|
"auxiliaryTracks": auxiliaryTracks,
|
|
53
|
+
"networkQuality": networkQuality,
|
|
52
54
|
"role": role]
|
|
53
55
|
}
|
|
54
56
|
|
|
@@ -114,6 +116,7 @@ class HmsDecoder: NSObject {
|
|
|
114
116
|
let audioTrack = getHmsAudioTrack(peer.audioTrack)
|
|
115
117
|
let videoTrack = getHmsVideoTrack(peer.videoTrack)
|
|
116
118
|
let role = getHmsRole(peer.role)
|
|
119
|
+
let networkQuality = getHmsNetworkQuality(peer.networkQuality)
|
|
117
120
|
|
|
118
121
|
var auxiliaryTracks = [[String: Any]]()
|
|
119
122
|
for track in peer.auxiliaryTracks ?? [] {
|
|
@@ -133,7 +136,7 @@ class HmsDecoder: NSObject {
|
|
|
133
136
|
localVideoTrackData = getHmsLocalVideoTrack(localVideo)
|
|
134
137
|
}
|
|
135
138
|
|
|
136
|
-
return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "localAudioTrackData": localAudioTrackData, "localVideoTrackData": localVideoTrackData, "role": role]
|
|
139
|
+
return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "localAudioTrackData": localAudioTrackData, "localVideoTrackData": localVideoTrackData, "role": role, "networkQuality": networkQuality]
|
|
137
140
|
}
|
|
138
141
|
|
|
139
142
|
static func getHmsLocalAudioTrack(_ localAudio: HMSLocalAudioTrack) -> [String: Any] {
|
|
@@ -232,6 +235,7 @@ class HmsDecoder: NSObject {
|
|
|
232
235
|
let audioTrack = getHmsAudioTrack(hmsRemotePeer.audioTrack)
|
|
233
236
|
let videoTrack = getHmsVideoTrack(hmsRemotePeer.videoTrack)
|
|
234
237
|
let role = getHmsRole(hmsRemotePeer.role)
|
|
238
|
+
let networkQuality = getHmsNetworkQuality(hmsRemotePeer.networkQuality)
|
|
235
239
|
|
|
236
240
|
var auxiliaryTracks = [[String: Any]]()
|
|
237
241
|
|
|
@@ -252,7 +256,7 @@ class HmsDecoder: NSObject {
|
|
|
252
256
|
remoteVideoTrackData = getHMSRemoteVideoTrack(remoteVideo)
|
|
253
257
|
}
|
|
254
258
|
|
|
255
|
-
return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "remoteAudioTrackData": remoteAudioTrackData, "remoteVideoTrackData": remoteVideoTrackData, "role": role]
|
|
259
|
+
return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "remoteAudioTrackData": remoteAudioTrackData, "remoteVideoTrackData": remoteVideoTrackData, "role": role, "networkQuality": networkQuality]
|
|
256
260
|
}
|
|
257
261
|
|
|
258
262
|
static func getHMSRemoteAudioTrack(_ remoteAudio: HMSRemoteAudioTrack) -> [String: Any] {
|
|
@@ -589,6 +593,12 @@ class HmsDecoder: NSObject {
|
|
|
589
593
|
return ["recipientPeer": getHmsPeer(recipient.peerRecipient), "recipientRoles": getAllRoles(recipient.rolesRecipient), "type": self.getRecipientType(from: recipient.type)]
|
|
590
594
|
}
|
|
591
595
|
|
|
596
|
+
static func getHmsNetworkQuality(_ hmsNetworkQuality: HMSNetworkQuality?) -> [String: Any] {
|
|
597
|
+
guard let networkQuality = hmsNetworkQuality else { return [:] }
|
|
598
|
+
|
|
599
|
+
return ["downlinkQuality": networkQuality.downlinkQuality]
|
|
600
|
+
}
|
|
601
|
+
|
|
592
602
|
static private func getRecipientType(from recipientType: HMSMessageRecipientType) -> String {
|
|
593
603
|
switch recipientType {
|
|
594
604
|
case .broadcast:
|
package/ios/HmsSDK.swift
CHANGED
|
@@ -72,13 +72,15 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
let metadata = credentials.value(forKey: "metadata") as? String
|
|
75
|
+
let captureNetworkQualityInPreview = credentials.value(forKey: "captureNetworkQualityInPreview") as? Bool ?? false
|
|
76
|
+
|
|
75
77
|
DispatchQueue.main.async { [weak self] in
|
|
76
78
|
guard let strongSelf = self else { return }
|
|
77
79
|
if let endpoint = credentials.value(forKey: "endpoint") as? String {
|
|
78
|
-
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, endpoint: endpoint)
|
|
80
|
+
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, endpoint: endpoint, captureNetworkQualityInPreview: captureNetworkQualityInPreview)
|
|
79
81
|
strongSelf.hms?.preview(config: strongSelf.config!, delegate: strongSelf)
|
|
80
82
|
} else {
|
|
81
|
-
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata)
|
|
83
|
+
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, captureNetworkQualityInPreview: captureNetworkQualityInPreview)
|
|
82
84
|
strongSelf.hms?.preview(config: strongSelf.config!, delegate: strongSelf)
|
|
83
85
|
}
|
|
84
86
|
strongSelf.previewInProgress = true
|
|
@@ -135,6 +137,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
135
137
|
}
|
|
136
138
|
|
|
137
139
|
let metadata = credentials.value(forKey: "metadata") as? String
|
|
140
|
+
let captureNetworkQualityInPreview = credentials.value(forKey: "captureNetworkQualityInPreview") as? Bool ?? false
|
|
138
141
|
|
|
139
142
|
DispatchQueue.main.async { [weak self] in
|
|
140
143
|
guard let strongSelf = self else { return }
|
|
@@ -142,10 +145,10 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
142
145
|
strongSelf.hms?.join(config: config, delegate: strongSelf)
|
|
143
146
|
} else {
|
|
144
147
|
if let endpoint = credentials.value(forKey: "endpoint") as? String {
|
|
145
|
-
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, endpoint: endpoint)
|
|
148
|
+
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, endpoint: endpoint, captureNetworkQualityInPreview: captureNetworkQualityInPreview)
|
|
146
149
|
strongSelf.hms?.join(config: strongSelf.config!, delegate: strongSelf)
|
|
147
150
|
} else {
|
|
148
|
-
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata)
|
|
151
|
+
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, captureNetworkQualityInPreview: captureNetworkQualityInPreview)
|
|
149
152
|
strongSelf.hms?.join(config: strongSelf.config!, delegate: strongSelf)
|
|
150
153
|
}
|
|
151
154
|
}
|
|
@@ -950,6 +953,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
950
953
|
return "NAME_CHANGED"
|
|
951
954
|
case .defaultUpdate:
|
|
952
955
|
return "DEFAULT_UPDATE"
|
|
956
|
+
case .networkQualityUpdated:
|
|
957
|
+
return "NETWORK_QUALITY_UPDATED"
|
|
953
958
|
default:
|
|
954
959
|
return ""
|
|
955
960
|
}
|
|
@@ -17,10 +17,13 @@ class HMSConfig {
|
|
|
17
17
|
|
|
18
18
|
_defineProperty(this, "metadata", void 0);
|
|
19
19
|
|
|
20
|
+
_defineProperty(this, "captureNetworkQualityInPreview", void 0);
|
|
21
|
+
|
|
20
22
|
this.username = params.username;
|
|
21
23
|
this.authToken = params.authToken;
|
|
22
24
|
this.endpoint = params.endpoint;
|
|
23
25
|
this.metadata = params.metadata;
|
|
26
|
+
this.captureNetworkQualityInPreview = params.captureNetworkQualityInPreview;
|
|
24
27
|
}
|
|
25
28
|
|
|
26
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HMSConfig.ts"],"names":["HMSConfig","constructor","params","username","authToken","endpoint","metadata"],"mappings":";;;;;;;;;AAAO,MAAMA,SAAN,CAAgB;
|
|
1
|
+
{"version":3,"sources":["HMSConfig.ts"],"names":["HMSConfig","constructor","params","username","authToken","endpoint","metadata","captureNetworkQualityInPreview"],"mappings":";;;;;;;;;AAAO,MAAMA,SAAN,CAAgB;AAOrBC,EAAAA,WAAW,CAACC,MAAD,EAMR;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACD,SAAKC,QAAL,GAAgBD,MAAM,CAACC,QAAvB;AACA,SAAKC,SAAL,GAAiBF,MAAM,CAACE,SAAxB;AACA,SAAKC,QAAL,GAAgBH,MAAM,CAACG,QAAvB;AACA,SAAKC,QAAL,GAAgBJ,MAAM,CAACI,QAAvB;AACA,SAAKC,8BAAL,GAAsCL,MAAM,CAACK,8BAA7C;AACD;;AAnBoB","sourcesContent":["export class HMSConfig {\n username: string;\n authToken: string;\n endpoint?: string;\n metadata?: string;\n captureNetworkQualityInPreview?: boolean;\n\n constructor(params: {\n username: string;\n authToken: string;\n endpoint?: string;\n metadata?: string;\n captureNetworkQualityInPreview?: boolean;\n }) {\n this.username = params.username;\n this.authToken = params.authToken;\n this.endpoint = params.endpoint;\n this.metadata = params.metadata;\n this.captureNetworkQualityInPreview = params.captureNetworkQualityInPreview;\n }\n}\n"]}
|
|
@@ -51,6 +51,8 @@ var _ = require("..");
|
|
|
51
51
|
|
|
52
52
|
var _HMSHLSRecordingState = require("./HMSHLSRecordingState");
|
|
53
53
|
|
|
54
|
+
var _HMSNetworkQuality = require("./HMSNetworkQuality");
|
|
55
|
+
|
|
54
56
|
class HMSEncoder {
|
|
55
57
|
static encodeHmsRoom(room, id) {
|
|
56
58
|
const encodedObj = {
|
|
@@ -81,10 +83,11 @@ class HMSEncoder {
|
|
|
81
83
|
peerID: peer === null || peer === void 0 ? void 0 : peer.peerID,
|
|
82
84
|
name: peer === null || peer === void 0 ? void 0 : peer.name,
|
|
83
85
|
isLocal: peer === null || peer === void 0 ? void 0 : peer.isLocal,
|
|
84
|
-
role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
|
|
85
86
|
customerUserID: peer === null || peer === void 0 ? void 0 : peer.customerUserID,
|
|
86
87
|
customerDescription: peer === null || peer === void 0 ? void 0 : peer.customerDescription,
|
|
87
88
|
metadata: peer === null || peer === void 0 ? void 0 : peer.metadata,
|
|
89
|
+
role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
|
|
90
|
+
networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality),
|
|
88
91
|
audioTrack: HMSEncoder.encodeHmsAudioTrack(peer === null || peer === void 0 ? void 0 : peer.audioTrack, id),
|
|
89
92
|
videoTrack: HMSEncoder.encodeHmsVideoTrack(peer === null || peer === void 0 ? void 0 : peer.videoTrack, id),
|
|
90
93
|
auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(peer === null || peer === void 0 ? void 0 : peer.auxiliaryTracks, id)
|
|
@@ -148,6 +151,7 @@ class HMSEncoder {
|
|
|
148
151
|
customerDescription: peer.customerDescription,
|
|
149
152
|
metadata: peer.metadata,
|
|
150
153
|
role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
|
|
154
|
+
networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality),
|
|
151
155
|
audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack, id),
|
|
152
156
|
videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id),
|
|
153
157
|
auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(peer.auxiliaryTracks, id),
|
|
@@ -248,6 +252,7 @@ class HMSEncoder {
|
|
|
248
252
|
customerDescription: peer.customerDescription,
|
|
249
253
|
metadata: peer.metadata,
|
|
250
254
|
role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
|
|
255
|
+
networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality),
|
|
251
256
|
audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack, id),
|
|
252
257
|
videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id),
|
|
253
258
|
auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(peer.auxiliaryTracks, id),
|
|
@@ -442,6 +447,16 @@ class HMSEncoder {
|
|
|
442
447
|
return variants;
|
|
443
448
|
}
|
|
444
449
|
|
|
450
|
+
static encodeHMSNetworkQuality(data) {
|
|
451
|
+
if (data) {
|
|
452
|
+
return new _HMSNetworkQuality.HMSNetworkQuality({
|
|
453
|
+
downlinkQuality: data === null || data === void 0 ? void 0 : data.downlinkQuality
|
|
454
|
+
});
|
|
455
|
+
} else {
|
|
456
|
+
return undefined;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
445
460
|
}
|
|
446
461
|
|
|
447
462
|
exports.HMSEncoder = HMSEncoder;
|