@100mslive/react-native-hms 0.9.8 → 0.9.92
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/README.md +50 -43
- 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/.idea/libraries/{Gradle__com_github_100mslive_android_sdk_lib_2_4_2_aar.xml → Gradle__com_github_100mslive_android_sdk_lib_2_4_7_aar.xml} +4 -4
- package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m97_hms_1_1_aar.xml +11 -0
- package/android/.idea/modules/android.androidTest.iml +4 -4
- package/android/.idea/modules/android.main.iml +4 -4
- package/android/.idea/modules/android.unitTest.iml +4 -4
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/reactnativehmssdk/HMSAudioshareActivity.kt +84 -0
- package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +77 -8
- package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +95 -22
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +88 -2
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +282 -49
- package/ios/HMSDecoder.swift +9 -8
- package/ios/HMSHelper.swift +5 -8
- package/ios/HMSManager.m +4 -1
- package/ios/HMSManager.swift +28 -6
- package/ios/HMSRNSDK.swift +146 -101
- package/lib/commonjs/classes/HMSAudioDevice.js +17 -0
- package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -0
- package/lib/commonjs/classes/HMSAudioMixingMode.js +15 -0
- package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -0
- package/lib/commonjs/classes/HMSAudioMode.js +17 -0
- package/lib/commonjs/classes/HMSAudioMode.js.map +1 -0
- package/lib/commonjs/classes/HMSEncoder.js +15 -0
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSException.js +18 -13
- package/lib/commonjs/classes/HMSException.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js +2 -2
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSPermissions.js +7 -4
- package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +267 -58
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSUpdateListenerActions.js +1 -0
- package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/commonjs/index.js +42 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSAudioDevice.js +10 -0
- package/lib/module/classes/HMSAudioDevice.js.map +1 -0
- package/lib/module/classes/HMSAudioMixingMode.js +8 -0
- package/lib/module/classes/HMSAudioMixingMode.js.map +1 -0
- package/lib/module/classes/HMSAudioMode.js +10 -0
- package/lib/module/classes/HMSAudioMode.js.map +1 -0
- package/lib/module/classes/HMSEncoder.js +14 -0
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSException.js +18 -13
- package/lib/module/classes/HMSException.js.map +1 -1
- package/lib/module/classes/HMSHLSConfig.js.map +1 -1
- package/lib/module/classes/HMSLogger.js +2 -2
- package/lib/module/classes/HMSLogger.js.map +1 -1
- package/lib/module/classes/HMSPermissions.js +7 -4
- package/lib/module/classes/HMSPermissions.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +267 -52
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSUpdateListenerActions.js +1 -0
- package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSAudioDevice.d.ts +7 -0
- package/lib/typescript/classes/HMSAudioMixingMode.d.ts +5 -0
- package/lib/typescript/classes/HMSAudioMode.d.ts +7 -0
- package/lib/typescript/classes/HMSEncoder.d.ts +2 -0
- package/lib/typescript/classes/HMSException.d.ts +8 -14
- package/lib/typescript/classes/HMSHLSConfig.d.ts +2 -2
- package/lib/typescript/classes/HMSLogger.d.ts +1 -1
- package/lib/typescript/classes/HMSPermissions.d.ts +6 -4
- package/lib/typescript/classes/HMSSDK.d.ts +112 -12
- package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +2 -1
- package/lib/typescript/index.d.ts +3 -0
- package/package.json +1 -19
- package/react-native-hms.podspec +2 -1
- package/src/classes/HMSAudioDevice.ts +7 -0
- package/src/classes/HMSAudioMixingMode.ts +5 -0
- package/src/classes/HMSAudioMode.ts +7 -0
- package/src/classes/HMSEncoder.ts +12 -0
- package/src/classes/HMSException.ts +15 -24
- package/src/classes/HMSHLSConfig.ts +2 -2
- package/src/classes/HMSLogger.ts +2 -2
- package/src/classes/HMSPermissions.ts +9 -6
- package/src/classes/HMSSDK.tsx +352 -67
- package/src/classes/HMSUpdateListenerActions.ts +1 -0
- package/src/index.ts +3 -0
- package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m97_aar.xml +0 -11
package/ios/HMSRNSDK.swift
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import HMSSDK
|
|
10
|
+
import ReplayKit
|
|
10
11
|
|
|
11
12
|
class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
12
13
|
|
|
@@ -17,6 +18,13 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
17
18
|
var id: String = "12345"
|
|
18
19
|
var rtcStatsAttached = false
|
|
19
20
|
var recentPreviewTracks: [HMSTrack]? = []
|
|
21
|
+
private var reconnectingStage: Bool = false
|
|
22
|
+
private var preferredExtension: String? = nil
|
|
23
|
+
private var systemBroadcastPicker: RPSystemBroadcastPickerView? = nil
|
|
24
|
+
private var startScreenshareResolve: RCTPromiseResolveBlock? = nil
|
|
25
|
+
private var stopScreenshareResolve: RCTPromiseResolveBlock? = nil
|
|
26
|
+
private var isScreenShared: Bool? = false
|
|
27
|
+
private var previewInProgress = false
|
|
20
28
|
|
|
21
29
|
let ON_PREVIEW = "ON_PREVIEW"
|
|
22
30
|
let ON_JOIN = "ON_JOIN"
|
|
@@ -37,14 +45,17 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
37
45
|
let ON_REMOTE_VIDEO_STATS = "ON_REMOTE_VIDEO_STATS"
|
|
38
46
|
|
|
39
47
|
// MARK: - Setup
|
|
40
|
-
|
|
41
48
|
init(data: NSDictionary?, delegate manager: HMSManager?, uid id: String) {
|
|
42
|
-
let
|
|
43
|
-
let
|
|
49
|
+
let trackSettings = data?.value(forKey: "trackSettings") as? NSDictionary
|
|
50
|
+
let videoSettings = HMSHelper.getLocalVideoSettings(trackSettings?.value(forKey: "video") as? NSDictionary)
|
|
51
|
+
let audioSettings = HMSHelper.getLocalAudioSettings(trackSettings?.value(forKey: "audio") as? NSDictionary)
|
|
52
|
+
preferredExtension = data?.value(forKey: "preferredExtension") as? String
|
|
53
|
+
|
|
44
54
|
DispatchQueue.main.async { [weak self] in
|
|
45
55
|
let hmsTrackSettings = HMSTrackSettings(videoSettings: videoSettings, audioSettings: audioSettings)
|
|
46
56
|
self?.hms = HMSSDK.build { sdk in
|
|
47
57
|
sdk.trackSettings = hmsTrackSettings
|
|
58
|
+
sdk.appGroup = data?.value(forKey: "appGroup") as? String
|
|
48
59
|
}
|
|
49
60
|
}
|
|
50
61
|
self.delegate = manager
|
|
@@ -52,13 +63,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
52
63
|
}
|
|
53
64
|
|
|
54
65
|
// MARK: - HMS SDK Actions
|
|
55
|
-
|
|
56
|
-
private var previewInProgress = false
|
|
57
|
-
|
|
58
|
-
func emitRequiredKeysError(_ error: String) {
|
|
59
|
-
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": ["code": HMSErrorCode.genericErrorUnknown, "description": error, "localizedDescription": error, "debugDescription": error, "message": error, "name": "REQUIRED_KEYS_NOT_FOUND", "action": "SEND_ALL_REQUIRED_KEYS", "id": 102], "id": id])
|
|
60
|
-
}
|
|
61
|
-
|
|
62
66
|
func preview(_ credentials: NSDictionary) {
|
|
63
67
|
|
|
64
68
|
guard !previewInProgress else {
|
|
@@ -105,7 +109,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
105
109
|
if let extractedRole = roleObj {
|
|
106
110
|
hms?.preview(role: extractedRole, completion: { tracks, error in
|
|
107
111
|
if (error != nil) {
|
|
108
|
-
delegate?.emitEvent(ON_ERROR, ["
|
|
112
|
+
delegate?.emitEvent(ON_ERROR, ["error": HMSDecoder.getError(error), "id": id])
|
|
109
113
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
110
114
|
return
|
|
111
115
|
}
|
|
@@ -139,7 +143,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
139
143
|
emitRequiredKeysError(errorMessage)
|
|
140
144
|
return
|
|
141
145
|
}
|
|
142
|
-
|
|
146
|
+
reconnectingStage = false
|
|
143
147
|
let metadata = credentials.value(forKey: "metadata") as? String
|
|
144
148
|
let captureNetworkQualityInPreview = credentials.value(forKey: "captureNetworkQualityInPreview") as? Bool ?? false
|
|
145
149
|
|
|
@@ -192,18 +196,27 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
192
196
|
}
|
|
193
197
|
|
|
194
198
|
func leave(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
self
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
199
|
+
if(reconnectingStage) {
|
|
200
|
+
reject?("Still in reconnecting stage", "Still in reconnecting stage", nil)
|
|
201
|
+
} else {
|
|
202
|
+
DispatchQueue.main.async { [weak self] in
|
|
203
|
+
guard let strongSelf = self else { return }
|
|
204
|
+
self?.config = nil
|
|
205
|
+
self?.recentRoleChangeRequest = nil
|
|
206
|
+
self?.systemBroadcastPicker = nil
|
|
207
|
+
self?.preferredExtension = nil
|
|
208
|
+
self?.stopScreenshareResolve = nil
|
|
209
|
+
self?.startScreenshareResolve = nil
|
|
210
|
+
self?.isScreenShared = false
|
|
211
|
+
self?.hms?.leave({ success, error in
|
|
212
|
+
if success {
|
|
213
|
+
resolve?(["success": success])
|
|
214
|
+
} else {
|
|
215
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
216
|
+
reject?("error in leave", "error in leave", nil)
|
|
217
|
+
}
|
|
218
|
+
})
|
|
219
|
+
}
|
|
207
220
|
}
|
|
208
221
|
}
|
|
209
222
|
|
|
@@ -224,7 +237,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
224
237
|
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
225
238
|
return
|
|
226
239
|
} else {
|
|
227
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
240
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
228
241
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
229
242
|
return
|
|
230
243
|
}
|
|
@@ -250,7 +263,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
250
263
|
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
251
264
|
return
|
|
252
265
|
} else {
|
|
253
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
266
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
254
267
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
255
268
|
return
|
|
256
269
|
}
|
|
@@ -276,7 +289,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
276
289
|
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
277
290
|
return
|
|
278
291
|
} else {
|
|
279
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
292
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
280
293
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
281
294
|
return
|
|
282
295
|
}
|
|
@@ -298,9 +311,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
298
311
|
|
|
299
312
|
self?.hms?.accept(changeRole: request, completion: { success, error in
|
|
300
313
|
if success {
|
|
301
|
-
resolve?(["success":
|
|
314
|
+
resolve?(["success": success])
|
|
302
315
|
} else {
|
|
303
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
316
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
304
317
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
305
318
|
}
|
|
306
319
|
})
|
|
@@ -329,9 +342,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
329
342
|
|
|
330
343
|
self?.hms?.changeRole(for: peer, to: role, force: force, completion: { success, error in
|
|
331
344
|
if success {
|
|
332
|
-
resolve?(["success":
|
|
345
|
+
resolve?(["success": success])
|
|
333
346
|
} else {
|
|
334
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
347
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
335
348
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
336
349
|
}
|
|
337
350
|
})
|
|
@@ -354,15 +367,15 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
354
367
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
355
368
|
let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
356
369
|
else {
|
|
357
|
-
reject?(
|
|
370
|
+
reject?("TRACK_NOT_FOUND", "TRACK_NOT_FOUND", nil)
|
|
358
371
|
return
|
|
359
372
|
}
|
|
360
373
|
|
|
361
374
|
self?.hms?.changeTrackState(for: track, mute: mute, completion: { success, error in
|
|
362
375
|
if success {
|
|
363
|
-
resolve?(["success":
|
|
376
|
+
resolve?(["success": success])
|
|
364
377
|
} else {
|
|
365
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
378
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
366
379
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
367
380
|
}
|
|
368
381
|
})
|
|
@@ -395,9 +408,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
395
408
|
let encodedTargetedRoles = HMSHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
|
|
396
409
|
self?.hms?.changeTrackState(mute: mute, for: decodeType, source: source, roles: encodedTargetedRoles, completion: { success, error in
|
|
397
410
|
if success {
|
|
398
|
-
resolve?(["success":
|
|
411
|
+
resolve?(["success": success])
|
|
399
412
|
} else {
|
|
400
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
413
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
401
414
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
402
415
|
}
|
|
403
416
|
})
|
|
@@ -422,8 +435,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
422
435
|
let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
423
436
|
else {
|
|
424
437
|
let error = HMSError(id: "120", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_NOT_FOUND")
|
|
425
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["
|
|
426
|
-
reject?(
|
|
438
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
439
|
+
reject?("TRACK_NOT_FOUND", "TRACK_NOT_FOUND", nil)
|
|
427
440
|
return
|
|
428
441
|
}
|
|
429
442
|
let mute = track.isMute()
|
|
@@ -452,15 +465,15 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
452
465
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
453
466
|
let peer = HMSHelper.getRemotePeerFromPeerId(peerId, remotePeers: remotePeers)
|
|
454
467
|
else {
|
|
455
|
-
reject?(
|
|
468
|
+
reject?("PEER_NOT_FOUND", "PEER_NOT_FOUND", nil)
|
|
456
469
|
return
|
|
457
470
|
}
|
|
458
471
|
|
|
459
472
|
self?.hms?.removePeer(peer, reason: reason ?? "Removed from room", completion: { success, error in
|
|
460
473
|
if success {
|
|
461
|
-
resolve?(["success":
|
|
474
|
+
resolve?(["success": success])
|
|
462
475
|
} else {
|
|
463
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
476
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
464
477
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
465
478
|
}
|
|
466
479
|
})
|
|
@@ -481,9 +494,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
481
494
|
DispatchQueue.main.async { [weak self] in
|
|
482
495
|
self?.hms?.endRoom(lock: lock, reason: reason, completion: { success, error in
|
|
483
496
|
if success {
|
|
484
|
-
resolve?(["success":
|
|
497
|
+
resolve?(["success": success])
|
|
485
498
|
} else {
|
|
486
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
499
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
487
500
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
488
501
|
}
|
|
489
502
|
})
|
|
@@ -501,7 +514,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
501
514
|
DispatchQueue.main.async { [weak self] in
|
|
502
515
|
guard let remotePeers = self?.hms?.remotePeers
|
|
503
516
|
else {
|
|
504
|
-
reject?(
|
|
517
|
+
reject?("REMOTE_PEERS_NOT_FOUND", "REMOTE_PEERS_NOT_FOUND", nil)
|
|
505
518
|
return
|
|
506
519
|
}
|
|
507
520
|
let remoteAudioTrack = HMSHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
|
|
@@ -515,7 +528,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
515
528
|
resolve?(isPlaybackAllowed)
|
|
516
529
|
return
|
|
517
530
|
} else {
|
|
518
|
-
reject?(
|
|
531
|
+
reject?("TRACK_NOT_FOUND", "TRACK_NOT_FOUND", nil)
|
|
519
532
|
return
|
|
520
533
|
}
|
|
521
534
|
}
|
|
@@ -568,7 +581,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
568
581
|
resolve?(["success": success])
|
|
569
582
|
return
|
|
570
583
|
} else {
|
|
571
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
584
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
572
585
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
573
586
|
return
|
|
574
587
|
}
|
|
@@ -594,7 +607,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
594
607
|
remoteAudioTrack?.setVolume(volume)
|
|
595
608
|
} else {
|
|
596
609
|
let error = HMSError(id: "125", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_NOT_FOUND")
|
|
597
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["
|
|
610
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
598
611
|
}
|
|
599
612
|
}
|
|
600
613
|
}
|
|
@@ -616,7 +629,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
616
629
|
meetingUrl = meetLink
|
|
617
630
|
} else {
|
|
618
631
|
let error = HMSError(id: "127", code: HMSErrorCode.genericErrorUnknown, message: "INVALID_MEETING_URL_PASSED")
|
|
619
|
-
delegate?.emitEvent(ON_ERROR, ["
|
|
632
|
+
delegate?.emitEvent(ON_ERROR, ["error": HMSDecoder.getError(error), "id": id])
|
|
620
633
|
reject?("INVALID_MEETING_URL_PASSED", "INVALID_MEETING_URL_PASSED", nil)
|
|
621
634
|
}
|
|
622
635
|
|
|
@@ -634,7 +647,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
634
647
|
resolve?(["success": success])
|
|
635
648
|
return
|
|
636
649
|
} else {
|
|
637
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
650
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
638
651
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
639
652
|
return
|
|
640
653
|
}
|
|
@@ -653,7 +666,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
653
666
|
resolve?(["success": success])
|
|
654
667
|
return
|
|
655
668
|
} else {
|
|
656
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
669
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
657
670
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
658
671
|
return
|
|
659
672
|
}
|
|
@@ -661,17 +674,12 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
661
674
|
}
|
|
662
675
|
|
|
663
676
|
func startHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
return
|
|
677
|
+
let recordConfig = HMSHelper.getHlsRecordingConfig(data.value(forKey: "hlsRecordingConfig") as? NSDictionary)
|
|
678
|
+
let hlsMeetingUrlVariant = HMSHelper.getHMSHLSMeetingURLVariants(data.value(forKey: "meetingURLVariants") as? [[String : Any]])
|
|
679
|
+
var config: HMSHLSConfig? = nil
|
|
680
|
+
if(!hlsMeetingUrlVariant.isEmpty || recordConfig !== nil){
|
|
681
|
+
config = HMSHLSConfig(variants: hlsMeetingUrlVariant, recording: recordConfig)
|
|
670
682
|
}
|
|
671
|
-
|
|
672
|
-
let recordConfig = HMSHelper.getHlsRecordingConfig(data)
|
|
673
|
-
let hlsMeetingUrlVariant = HMSHelper.getHMSHLSMeetingURLVariants(meetingURLVariants)
|
|
674
|
-
let config = HMSHLSConfig(variants: hlsMeetingUrlVariant, recording: recordConfig)
|
|
675
683
|
|
|
676
684
|
hms?.startHLSStreaming(config: config, completion: { success, error in
|
|
677
685
|
if success {
|
|
@@ -684,7 +692,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
684
692
|
resolve?(["success": success])
|
|
685
693
|
return
|
|
686
694
|
} else {
|
|
687
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
695
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
688
696
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
689
697
|
return
|
|
690
698
|
}
|
|
@@ -703,7 +711,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
703
711
|
resolve?(["success": success])
|
|
704
712
|
return
|
|
705
713
|
} else {
|
|
706
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
714
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
707
715
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
708
716
|
return
|
|
709
717
|
}
|
|
@@ -723,13 +731,13 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
723
731
|
if success {
|
|
724
732
|
resolve?(["success": success])
|
|
725
733
|
} else {
|
|
726
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
734
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
727
735
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
728
736
|
}
|
|
729
737
|
}
|
|
730
738
|
}
|
|
731
739
|
|
|
732
|
-
func remoteMuteAllAudio() {
|
|
740
|
+
func remoteMuteAllAudio(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
733
741
|
let allAudioTracks = HMSUtilities.getAllAudioTracks(in: (self.hms?.room)!!)
|
|
734
742
|
var customError: HMSError? = nil
|
|
735
743
|
for audioTrack in allAudioTracks {
|
|
@@ -740,8 +748,10 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
740
748
|
}
|
|
741
749
|
})
|
|
742
750
|
}
|
|
743
|
-
if (customError
|
|
744
|
-
|
|
751
|
+
if (customError === nil) {
|
|
752
|
+
resolve?(["success": true])
|
|
753
|
+
} else {
|
|
754
|
+
reject?(customError?.message, customError?.localizedDescription, nil)
|
|
745
755
|
}
|
|
746
756
|
}
|
|
747
757
|
|
|
@@ -774,34 +784,57 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
774
784
|
rtcStatsAttached = false
|
|
775
785
|
}
|
|
776
786
|
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
787
|
+
func startScreenshare(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
788
|
+
guard let preferredExtension = preferredExtension else {
|
|
789
|
+
let error = HMSError(id: "103", code: .genericErrorUnknown, message: "Could not start Screen share, preferredExtension not passed in Build Method", params: ["function": #function])
|
|
790
|
+
on(error: error)
|
|
791
|
+
reject?(error.message, error.localizedDescription, nil)
|
|
792
|
+
return
|
|
793
|
+
}
|
|
794
|
+
DispatchQueue.main.async { [weak self] in
|
|
795
|
+
if self?.systemBroadcastPicker == nil {
|
|
796
|
+
self?.systemBroadcastPicker = RPSystemBroadcastPickerView()
|
|
797
|
+
self?.systemBroadcastPicker!.preferredExtension = preferredExtension
|
|
798
|
+
self?.systemBroadcastPicker!.showsMicrophoneButton = false
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
for view in self!.systemBroadcastPicker!.subviews {
|
|
802
|
+
if let button = view as? UIButton {
|
|
803
|
+
button.sendActions(for: .allEvents)
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
self?.startScreenshareResolve = resolve
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
func stopScreenshare(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
811
|
+
guard let preferredExtension = preferredExtension else {
|
|
812
|
+
let error = HMSError(id: "103", code: .genericErrorUnknown, message: "Could not start Screen share, preferredExtension not passed in Build Method", params: ["function": #function])
|
|
813
|
+
on(error: error)
|
|
814
|
+
reject?(error.message, error.localizedDescription, nil)
|
|
815
|
+
return
|
|
816
|
+
}
|
|
817
|
+
DispatchQueue.main.async { [weak self] in
|
|
818
|
+
if self?.systemBroadcastPicker == nil {
|
|
819
|
+
self?.systemBroadcastPicker = RPSystemBroadcastPickerView()
|
|
820
|
+
self?.systemBroadcastPicker!.preferredExtension = preferredExtension
|
|
821
|
+
self?.systemBroadcastPicker!.showsMicrophoneButton = false
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
for view in self!.systemBroadcastPicker!.subviews {
|
|
825
|
+
if let button = view as? UIButton {
|
|
826
|
+
button.sendActions(for: .allEvents)
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
self?.stopScreenshareResolve = resolve
|
|
830
|
+
}
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
func isScreenShared(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
834
|
+
resolve?(isScreenShared)
|
|
835
|
+
}
|
|
791
836
|
|
|
792
|
-
//
|
|
793
|
-
// let localVideoTrack = self.hms?.localPeer?.localVideoTrack()
|
|
794
|
-
//
|
|
795
|
-
// guard let settings = HMSHelper.getLocalVideoSettings(data)
|
|
796
|
-
// else {
|
|
797
|
-
// let errorMessage = "setLocalVideoSettings: " + HMSHelper.getUnavailableRequiredKey(data)
|
|
798
|
-
// emitRequiredKeysError(errorMessage)
|
|
799
|
-
// return
|
|
800
|
-
// }
|
|
801
|
-
// localVideoTrack?.settings = settings
|
|
802
|
-
// }
|
|
803
|
-
|
|
804
|
-
// MARK: - HMS SDK Delegate Callbacks
|
|
837
|
+
// MARK: - HMS SDK Delegate Callbacks
|
|
805
838
|
func on(join room: HMSRoom) {
|
|
806
839
|
let roomData = HMSDecoder.getHmsRoom(room)
|
|
807
840
|
let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
@@ -854,12 +887,24 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
854
887
|
let hmsPeer = HMSDecoder.getHmsPeer(peer)
|
|
855
888
|
let hmsTrack = HMSDecoder.getHmsTrack(track)
|
|
856
889
|
|
|
890
|
+
if peer.isLocal && track.source.uppercased() == "SCREEN" && track.kind == HMSTrackKind.video {
|
|
891
|
+
if update == .trackAdded {
|
|
892
|
+
isScreenShared = true
|
|
893
|
+
startScreenshareResolve?(["success": true])
|
|
894
|
+
startScreenshareResolve = nil
|
|
895
|
+
} else if update == .trackRemoved {
|
|
896
|
+
isScreenShared = false
|
|
897
|
+
stopScreenshareResolve?(["success": true])
|
|
898
|
+
stopScreenshareResolve = nil
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
|
|
857
902
|
self.delegate?.emitEvent(ON_TRACK_UPDATE, ["event": ON_TRACK_UPDATE, "id": self.id, "room": roomData, "type": type, "localPeer": localPeerData, "remotePeers": remotePeerData, "peer": hmsPeer, "track": hmsTrack])
|
|
858
903
|
}
|
|
859
904
|
|
|
860
905
|
func on(error: HMSError) {
|
|
861
906
|
if previewInProgress { previewInProgress = false }
|
|
862
|
-
self.delegate?.emitEvent(ON_ERROR, ["
|
|
907
|
+
self.delegate?.emitEvent(ON_ERROR, ["error": HMSDecoder.getError(error), "id": id])
|
|
863
908
|
}
|
|
864
909
|
|
|
865
910
|
func on(message: HMSMessage) {
|
|
@@ -875,10 +920,12 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
875
920
|
}
|
|
876
921
|
|
|
877
922
|
func onReconnecting() {
|
|
878
|
-
|
|
923
|
+
reconnectingStage = true
|
|
924
|
+
self.delegate?.emitEvent(RECONNECTING, ["event": RECONNECTING, "error": ["code": HMSErrorCode.websocketConnectionLost, "description": "Software caused connection abort", "localizedDescription": "Network connection lost ", "debugDescription": "Network connection lost ", "message": "Network connection lost ", "name": "WebSocketConnectionLost", "action": "NONE", "id": 101], "id": self.id ])
|
|
879
925
|
}
|
|
880
926
|
|
|
881
927
|
func onReconnected() {
|
|
928
|
+
reconnectingStage = false
|
|
882
929
|
self.delegate?.emitEvent(RECONNECTED, ["event": RECONNECTED, "id": self.id ])
|
|
883
930
|
}
|
|
884
931
|
|
|
@@ -1020,10 +1067,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1020
1067
|
return ""
|
|
1021
1068
|
}
|
|
1022
1069
|
}
|
|
1023
|
-
}
|
|
1024
1070
|
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
// }
|
|
1071
|
+
func emitRequiredKeysError(_ error: String) {
|
|
1072
|
+
delegate?.emitEvent(ON_ERROR, ["error": ["code": HMSErrorCode.genericErrorUnknown.rawValue, "description": error, "message": error, "name": "REQUIRED_KEYS_NOT_FOUND", "action": "SEND_ALL_REQUIRED_KEYS", "id": 102, "isTerminal": false], "id": id])
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.HMSAudioDevice = void 0;
|
|
7
|
+
let HMSAudioDevice;
|
|
8
|
+
exports.HMSAudioDevice = HMSAudioDevice;
|
|
9
|
+
|
|
10
|
+
(function (HMSAudioDevice) {
|
|
11
|
+
HMSAudioDevice["SPEAKER_PHONE"] = "SPEAKER_PHONE";
|
|
12
|
+
HMSAudioDevice["WIRED_HEADSET"] = "WIRED_HEADSET";
|
|
13
|
+
HMSAudioDevice["EARPIECE"] = "EARPIECE";
|
|
14
|
+
HMSAudioDevice["BLUETOOTH"] = "BLUETOOTH";
|
|
15
|
+
HMSAudioDevice["AUTOMATIC"] = "AUTOMATIC";
|
|
16
|
+
})(HMSAudioDevice || (exports.HMSAudioDevice = HMSAudioDevice = {}));
|
|
17
|
+
//# sourceMappingURL=HMSAudioDevice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HMSAudioDevice"],"sources":["HMSAudioDevice.ts"],"sourcesContent":["export enum HMSAudioDevice {\n SPEAKER_PHONE = 'SPEAKER_PHONE',\n WIRED_HEADSET = 'WIRED_HEADSET',\n EARPIECE = 'EARPIECE',\n BLUETOOTH = 'BLUETOOTH',\n AUTOMATIC = 'AUTOMATIC',\n}\n"],"mappings":";;;;;;IAAYA,c;;;WAAAA,c;EAAAA,c;EAAAA,c;EAAAA,c;EAAAA,c;EAAAA,c;GAAAA,c,8BAAAA,c"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.HMSAudioMixingMode = void 0;
|
|
7
|
+
let HMSAudioMixingMode;
|
|
8
|
+
exports.HMSAudioMixingMode = HMSAudioMixingMode;
|
|
9
|
+
|
|
10
|
+
(function (HMSAudioMixingMode) {
|
|
11
|
+
HMSAudioMixingMode["TALK_ONLY"] = "TALK_ONLY";
|
|
12
|
+
HMSAudioMixingMode["TALK_AND_MUSIC"] = "TALK_AND_MUSIC";
|
|
13
|
+
HMSAudioMixingMode["MUSIC_ONLY"] = "MUSIC_ONLY";
|
|
14
|
+
})(HMSAudioMixingMode || (exports.HMSAudioMixingMode = HMSAudioMixingMode = {}));
|
|
15
|
+
//# sourceMappingURL=HMSAudioMixingMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HMSAudioMixingMode"],"sources":["HMSAudioMixingMode.ts"],"sourcesContent":["export enum HMSAudioMixingMode {\n TALK_ONLY = 'TALK_ONLY',\n TALK_AND_MUSIC = 'TALK_AND_MUSIC',\n MUSIC_ONLY = 'MUSIC_ONLY',\n}\n"],"mappings":";;;;;;IAAYA,kB;;;WAAAA,kB;EAAAA,kB;EAAAA,kB;EAAAA,kB;GAAAA,kB,kCAAAA,kB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.HMSAudioMode = void 0;
|
|
7
|
+
let HMSAudioMode;
|
|
8
|
+
exports.HMSAudioMode = HMSAudioMode;
|
|
9
|
+
|
|
10
|
+
(function (HMSAudioMode) {
|
|
11
|
+
HMSAudioMode[HMSAudioMode["MODE_NORMAL"] = 0] = "MODE_NORMAL";
|
|
12
|
+
HMSAudioMode[HMSAudioMode["MODE_RINGTONE"] = 1] = "MODE_RINGTONE";
|
|
13
|
+
HMSAudioMode[HMSAudioMode["MODE_IN_CALL"] = 2] = "MODE_IN_CALL";
|
|
14
|
+
HMSAudioMode[HMSAudioMode["MODE_IN_COMMUNICATION"] = 3] = "MODE_IN_COMMUNICATION";
|
|
15
|
+
HMSAudioMode[HMSAudioMode["MODE_CALL_SCREENING"] = 4] = "MODE_CALL_SCREENING";
|
|
16
|
+
})(HMSAudioMode || (exports.HMSAudioMode = HMSAudioMode = {}));
|
|
17
|
+
//# sourceMappingURL=HMSAudioMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HMSAudioMode"],"sources":["HMSAudioMode.ts"],"sourcesContent":["export enum HMSAudioMode {\n MODE_NORMAL = 0,\n MODE_RINGTONE = 1,\n MODE_IN_CALL = 2,\n MODE_IN_COMMUNICATION = 3,\n MODE_CALL_SCREENING = 4,\n}\n"],"mappings":";;;;;;IAAYA,Y;;;WAAAA,Y;EAAAA,Y,CAAAA,Y;EAAAA,Y,CAAAA,Y;EAAAA,Y,CAAAA,Y;EAAAA,Y,CAAAA,Y;EAAAA,Y,CAAAA,Y;GAAAA,Y,4BAAAA,Y"}
|
|
@@ -63,6 +63,8 @@ var _HMSMessage = require("./HMSMessage");
|
|
|
63
63
|
|
|
64
64
|
var _HMSMessageRecipient = require("./HMSMessageRecipient");
|
|
65
65
|
|
|
66
|
+
var _HMSException = require("./HMSException");
|
|
67
|
+
|
|
66
68
|
class HMSEncoder {
|
|
67
69
|
static encodeHmsRoom(room, id) {
|
|
68
70
|
const encodedObj = {
|
|
@@ -482,6 +484,19 @@ class HMSEncoder {
|
|
|
482
484
|
});
|
|
483
485
|
}
|
|
484
486
|
|
|
487
|
+
static encodeHMSException(data) {
|
|
488
|
+
var _data$error, _data$error2, _data$error3, _data$error4, _data$error5, _data$error6;
|
|
489
|
+
|
|
490
|
+
return new _HMSException.HMSException({
|
|
491
|
+
code: data === null || data === void 0 ? void 0 : (_data$error = data.error) === null || _data$error === void 0 ? void 0 : _data$error.code,
|
|
492
|
+
description: data === null || data === void 0 ? void 0 : (_data$error2 = data.error) === null || _data$error2 === void 0 ? void 0 : _data$error2.description,
|
|
493
|
+
message: data === null || data === void 0 ? void 0 : (_data$error3 = data.error) === null || _data$error3 === void 0 ? void 0 : _data$error3.message,
|
|
494
|
+
name: data === null || data === void 0 ? void 0 : (_data$error4 = data.error) === null || _data$error4 === void 0 ? void 0 : _data$error4.name,
|
|
495
|
+
action: data === null || data === void 0 ? void 0 : (_data$error5 = data.error) === null || _data$error5 === void 0 ? void 0 : _data$error5.action,
|
|
496
|
+
isTerminal: data === null || data === void 0 ? void 0 : (_data$error6 = data.error) === null || _data$error6 === void 0 ? void 0 : _data$error6.isTerminal
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
|
|
485
500
|
}
|
|
486
501
|
|
|
487
502
|
exports.HMSEncoder = HMSEncoder;
|