@100mslive/react-native-hms 0.9.5 → 0.9.8
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 +15 -4
- 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/compiler.xml +6 -0
- package/android/.idea/gradle.xml +6 -1
- package/android/.idea/jarRepositories.xml +40 -0
- package/android/.idea/libraries/Gradle__androidx_activity_activity_1_2_4_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_3_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_4_1_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_4_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_1_3_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_core_core_1_7_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_3_6_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_4_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_69_1_debug_aar.xml +14 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_3.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_3.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_3_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +13 -0
- package/android/.idea/libraries/Gradle__com_github_100mslive_android_sdk_lib_2_4_2_aar.xml +11 -0
- package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m97_aar.xml +11 -0
- package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +13 -0
- package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_6_0.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_6_0.xml +13 -0
- package/android/.idea/misc.xml +1 -1
- package/android/.idea/modules/android.androidTest.iml +201 -0
- package/android/.idea/modules/android.iml +28 -6
- package/android/.idea/modules/android.main.iml +196 -0
- package/android/.idea/modules/android.unitTest.iml +195 -0
- package/android/.idea/modules.xml +3 -0
- package/android/build.gradle +3 -3
- package/android/src/main/java/com/reactnativehmssdk/{HmsDecoder.kt → HMSDecoder.kt} +40 -36
- package/android/src/main/java/com/reactnativehmssdk/{HmsHelper.kt → HMSHelper.kt} +73 -10
- package/android/src/main/java/com/reactnativehmssdk/{HmsModule.kt → HMSManager.kt} +51 -41
- package/android/src/main/java/com/reactnativehmssdk/{HmsSDK.kt → HMSRNSDK.kt} +194 -190
- package/android/src/main/java/com/reactnativehmssdk/{HmssdkViewManager.kt → HMSSDKViewManager.kt} +11 -11
- package/android/src/main/java/com/reactnativehmssdk/{HmsView.kt → HMSView.kt} +3 -3
- package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +17 -18
- package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +2 -2
- package/ios/{HmsDecoder.swift → HMSDecoder.swift} +27 -26
- package/ios/{HmsHelper.swift → HMSHelper.swift} +26 -7
- package/ios/{HmsManager.m → HMSManager.m} +2 -1
- package/ios/{HmsManager.swift → HMSManager.swift} +46 -38
- package/ios/{HmsSDK.swift → HMSRNSDK.swift} +246 -225
- package/ios/{HmsView.m → HMSView.m} +1 -1
- package/ios/{HmsView.swift → HMSView.swift} +7 -6
- package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +27 -10
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalAudioTrack.js +3 -3
- package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalVideoTrack.js +3 -3
- package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSMessage.js +1 -1
- package/lib/commonjs/classes/HMSMessage.js.map +1 -1
- package/lib/commonjs/classes/HMSRTMPConfig.js +3 -0
- package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js +3 -3
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js +3 -3
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRoom.js +3 -0
- package/lib/commonjs/classes/HMSRoom.js.map +1 -1
- package/lib/commonjs/classes/HMSRoomUpdate.js +1 -3
- package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpVideoResolution.js +23 -0
- package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -0
- package/lib/commonjs/classes/HMSSDK.js +47 -40
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSource.js +15 -0
- package/lib/commonjs/classes/HMSTrackSource.js.map +1 -0
- package/lib/commonjs/classes/HmsView.js +2 -2
- package/lib/commonjs/classes/HmsView.js.map +1 -1
- package/lib/commonjs/index.js +28 -14
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +25 -9
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSLocalAudioTrack.js +3 -3
- package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSLocalVideoTrack.js +3 -3
- package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSMessage.js +1 -1
- package/lib/module/classes/HMSMessage.js.map +1 -1
- package/lib/module/classes/HMSRTMPConfig.js +3 -0
- package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
- package/lib/module/classes/HMSRemoteAudioTrack.js +3 -3
- package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSRemoteVideoTrack.js +3 -3
- package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSRoom.js +3 -0
- package/lib/module/classes/HMSRoom.js.map +1 -1
- package/lib/module/classes/HMSRoomUpdate.js +1 -3
- package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
- package/lib/module/classes/HMSRtmpVideoResolution.js +14 -0
- package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -0
- package/lib/module/classes/HMSSDK.js +45 -39
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
- package/lib/module/classes/HMSTrackSource.js +8 -0
- package/lib/module/classes/HMSTrackSource.js.map +1 -0
- package/lib/module/classes/HmsView.js +2 -2
- package/lib/module/classes/HmsView.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +2 -2
- package/lib/typescript/classes/HMSEncoder.d.ts +4 -2
- package/lib/typescript/classes/HMSMessage.d.ts +3 -3
- package/lib/typescript/classes/HMSRTMPConfig.d.ts +3 -0
- package/lib/typescript/classes/HMSRoom.d.ts +2 -0
- package/lib/typescript/classes/HMSRoomUpdate.d.ts +1 -3
- package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +2 -2
- package/lib/typescript/classes/HMSRtmpVideoResolution.d.ts +8 -0
- package/lib/typescript/classes/HMSSDK.d.ts +3 -3
- package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -2
- package/lib/typescript/classes/HMSTrackSource.d.ts +5 -0
- package/lib/typescript/index.d.ts +2 -1
- package/package.json +1 -1
- package/react-native-hms.podspec +2 -2
- package/src/classes/HMSBrowserRecordingState.ts +2 -2
- package/src/classes/HMSEncoder.ts +25 -9
- package/src/classes/HMSLocalAudioTrack.ts +3 -3
- package/src/classes/HMSLocalVideoTrack.ts +3 -3
- package/src/classes/HMSMessage.ts +4 -4
- package/src/classes/HMSRTMPConfig.ts +5 -0
- package/src/classes/HMSRemoteAudioTrack.ts +3 -3
- package/src/classes/HMSRemoteVideoTrack.ts +3 -3
- package/src/classes/HMSRoom.ts +3 -0
- package/src/classes/HMSRoomUpdate.ts +1 -3
- package/src/classes/HMSRtmpStreamingState.ts +2 -2
- package/src/classes/HMSRtmpVideoResolution.ts +9 -0
- package/src/classes/HMSSDK.tsx +47 -40
- package/src/classes/HMSServerRecordingState.ts +2 -2
- package/src/classes/HMSTrackSource.ts +5 -0
- package/src/classes/HmsView.tsx +2 -2
- package/src/index.ts +2 -1
- package/lib/commonjs/classes/HMSSpeakerUpdate.js +0 -26
- package/lib/commonjs/classes/HMSSpeakerUpdate.js.map +0 -1
- package/lib/module/classes/HMSSpeakerUpdate.js +0 -17
- package/lib/module/classes/HMSSpeakerUpdate.js.map +0 -1
- package/lib/typescript/classes/HMSSpeakerUpdate.d.ts +0 -11
- package/src/classes/HMSSpeakerUpdate.ts +0 -17
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import HMSSDK
|
|
10
10
|
|
|
11
|
-
class
|
|
11
|
+
class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
12
12
|
|
|
13
13
|
var hms: HMSSDK?
|
|
14
14
|
var config: HMSConfig?
|
|
15
15
|
var recentRoleChangeRequest: HMSRoleChangeRequest?
|
|
16
|
-
var delegate:
|
|
16
|
+
var delegate: HMSManager?
|
|
17
17
|
var id: String = "12345"
|
|
18
18
|
var rtcStatsAttached = false
|
|
19
19
|
var recentPreviewTracks: [HMSTrack]? = []
|
|
@@ -38,9 +38,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
38
38
|
|
|
39
39
|
// MARK: - Setup
|
|
40
40
|
|
|
41
|
-
init(data: NSDictionary?, delegate manager:
|
|
42
|
-
let videoSettings =
|
|
43
|
-
let audioSettings =
|
|
41
|
+
init(data: NSDictionary?, delegate manager: HMSManager?, uid id: String) {
|
|
42
|
+
let videoSettings = HMSHelper.getLocalVideoSettings(data?.value(forKey: "video") as? NSDictionary)
|
|
43
|
+
let audioSettings = HMSHelper.getLocalAudioSettings(data?.value(forKey: "audio") as? NSDictionary)
|
|
44
44
|
DispatchQueue.main.async { [weak self] in
|
|
45
45
|
let hmsTrackSettings = HMSTrackSettings(videoSettings: videoSettings, audioSettings: audioSettings)
|
|
46
46
|
self?.hms = HMSSDK.build { sdk in
|
|
@@ -55,6 +55,10 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
55
55
|
|
|
56
56
|
private var previewInProgress = false
|
|
57
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
|
+
|
|
58
62
|
func preview(_ credentials: NSDictionary) {
|
|
59
63
|
|
|
60
64
|
guard !previewInProgress else {
|
|
@@ -66,8 +70,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
66
70
|
guard let authToken = credentials.value(forKey: "authToken") as? String,
|
|
67
71
|
let user = credentials.value(forKey: "username") as? String
|
|
68
72
|
else {
|
|
69
|
-
let
|
|
70
|
-
|
|
73
|
+
let errorMessage = "preview: " + HMSHelper.getUnavailableRequiredKey(credentials, ["authToken", "username"])
|
|
74
|
+
emitRequiredKeysError(errorMessage)
|
|
71
75
|
return
|
|
72
76
|
}
|
|
73
77
|
|
|
@@ -90,24 +94,24 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
90
94
|
func previewForRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
91
95
|
guard let role = data.value(forKey: "role") as? String
|
|
92
96
|
else {
|
|
93
|
-
let
|
|
94
|
-
|
|
95
|
-
reject?(
|
|
97
|
+
let errorMessage = "previewForRole: " + HMSHelper.getUnavailableRequiredKey(data, ["role"])
|
|
98
|
+
emitRequiredKeysError(errorMessage)
|
|
99
|
+
reject?(errorMessage, errorMessage, nil)
|
|
96
100
|
return
|
|
97
101
|
}
|
|
98
102
|
|
|
99
|
-
let roleObj =
|
|
103
|
+
let roleObj = HMSHelper.getRoleFromRoleName(role, roles: hms?.roles)
|
|
100
104
|
|
|
101
105
|
if let extractedRole = roleObj {
|
|
102
106
|
hms?.preview(role: extractedRole, completion: { tracks, error in
|
|
103
107
|
if (error != nil) {
|
|
104
|
-
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error":
|
|
108
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
|
|
105
109
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
106
110
|
return
|
|
107
111
|
}
|
|
108
112
|
self.recentPreviewTracks = tracks
|
|
109
113
|
|
|
110
|
-
let decodedTracks =
|
|
114
|
+
let decodedTracks = HMSDecoder.getAllTracks(tracks ?? [])
|
|
111
115
|
|
|
112
116
|
resolve?(["success": true, "tracks": decodedTracks])
|
|
113
117
|
return
|
|
@@ -131,8 +135,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
131
135
|
guard let authToken = credentials.value(forKey: "authToken") as? String,
|
|
132
136
|
let user = credentials.value(forKey: "username") as? String
|
|
133
137
|
else {
|
|
134
|
-
let
|
|
135
|
-
|
|
138
|
+
let errorMessage = "join: " + HMSHelper.getUnavailableRequiredKey(credentials, ["authToken", "username"])
|
|
139
|
+
emitRequiredKeysError(errorMessage)
|
|
136
140
|
return
|
|
137
141
|
}
|
|
138
142
|
|
|
@@ -158,8 +162,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
158
162
|
func setLocalMute(_ data: NSDictionary) {
|
|
159
163
|
guard let isMute = data.value(forKey: "isMute") as? Bool
|
|
160
164
|
else {
|
|
161
|
-
let
|
|
162
|
-
|
|
165
|
+
let errorMessage = "setLocalMute: " + HMSHelper.getUnavailableRequiredKey(data, ["isMute"])
|
|
166
|
+
emitRequiredKeysError(errorMessage)
|
|
163
167
|
return
|
|
164
168
|
}
|
|
165
169
|
|
|
@@ -171,8 +175,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
171
175
|
func setLocalVideoMute(_ data: NSDictionary) {
|
|
172
176
|
guard let isMute = data.value(forKey: "isMute") as? Bool
|
|
173
177
|
else {
|
|
174
|
-
let
|
|
175
|
-
|
|
178
|
+
let errorMessage = "setLocalVideoMute: " + HMSHelper.getUnavailableRequiredKey(data, ["isMute"])
|
|
179
|
+
emitRequiredKeysError(errorMessage)
|
|
176
180
|
return
|
|
177
181
|
}
|
|
178
182
|
|
|
@@ -196,7 +200,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
196
200
|
if success {
|
|
197
201
|
resolve?("")
|
|
198
202
|
} else {
|
|
199
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error":
|
|
203
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
200
204
|
reject?(nil, "error in leave", nil)
|
|
201
205
|
}
|
|
202
206
|
})
|
|
@@ -206,8 +210,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
206
210
|
func sendBroadcastMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
207
211
|
guard let message = data.value(forKey: "message") as? String
|
|
208
212
|
else {
|
|
209
|
-
let
|
|
210
|
-
|
|
213
|
+
let errorMessage = "sendBroadcastMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message"])
|
|
214
|
+
emitRequiredKeysError(errorMessage)
|
|
215
|
+
reject?(errorMessage, errorMessage, nil)
|
|
211
216
|
return
|
|
212
217
|
}
|
|
213
218
|
|
|
@@ -219,7 +224,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
219
224
|
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
220
225
|
return
|
|
221
226
|
} else {
|
|
222
|
-
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error":
|
|
227
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
223
228
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
224
229
|
return
|
|
225
230
|
}
|
|
@@ -231,20 +236,21 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
231
236
|
guard let message = data.value(forKey: "message") as? String,
|
|
232
237
|
let targetedRoles = data.value(forKey: "roles") as? [String]
|
|
233
238
|
else {
|
|
234
|
-
let
|
|
235
|
-
|
|
239
|
+
let errorMessage = "sendGroupMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message", "roles"])
|
|
240
|
+
emitRequiredKeysError(errorMessage)
|
|
241
|
+
reject?(errorMessage, errorMessage, nil)
|
|
236
242
|
return
|
|
237
243
|
}
|
|
238
244
|
|
|
239
245
|
let type = data.value(forKey: "type") as? String ?? "chat"
|
|
240
246
|
DispatchQueue.main.async { [weak self] in
|
|
241
|
-
let encodedTargetedRoles =
|
|
247
|
+
let encodedTargetedRoles = HMSHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
|
|
242
248
|
self?.hms?.sendGroupMessage(type: type, message: message, roles: encodedTargetedRoles, completion: { message, error in
|
|
243
249
|
if error == nil {
|
|
244
250
|
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
245
251
|
return
|
|
246
252
|
} else {
|
|
247
|
-
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error":
|
|
253
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
248
254
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
249
255
|
return
|
|
250
256
|
}
|
|
@@ -256,20 +262,21 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
256
262
|
guard let message = data.value(forKey: "message") as? String,
|
|
257
263
|
let peerId = data.value(forKey: "peerId") as? String
|
|
258
264
|
else {
|
|
259
|
-
let
|
|
260
|
-
|
|
265
|
+
let errorMessage = "sendDirectMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message", "peerId"])
|
|
266
|
+
emitRequiredKeysError(errorMessage)
|
|
267
|
+
reject?(errorMessage, errorMessage, nil)
|
|
261
268
|
return
|
|
262
269
|
}
|
|
263
270
|
|
|
264
271
|
let type = data.value(forKey: "type") as? String ?? "chat"
|
|
265
272
|
DispatchQueue.main.async { [weak self] in
|
|
266
|
-
guard let peer =
|
|
273
|
+
guard let peer = HMSHelper.getRemotePeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers) else { return }
|
|
267
274
|
self?.hms?.sendDirectMessage(type: type, message: message, peer: peer, completion: { message, error in
|
|
268
275
|
if error == nil {
|
|
269
276
|
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
270
277
|
return
|
|
271
278
|
} else {
|
|
272
|
-
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error":
|
|
279
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
273
280
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
274
281
|
return
|
|
275
282
|
}
|
|
@@ -281,13 +288,19 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
281
288
|
|
|
282
289
|
DispatchQueue.main.async { [weak self] in
|
|
283
290
|
|
|
284
|
-
guard let request = self?.recentRoleChangeRequest
|
|
291
|
+
guard let request = self?.recentRoleChangeRequest
|
|
292
|
+
else {
|
|
293
|
+
let errorMessage = "acceptRoleChange: recentRoleChangeRequest not found"
|
|
294
|
+
self?.emitRequiredKeysError(errorMessage)
|
|
295
|
+
reject?(errorMessage, errorMessage, nil)
|
|
296
|
+
return
|
|
297
|
+
}
|
|
285
298
|
|
|
286
299
|
self?.hms?.accept(changeRole: request, completion: { success, error in
|
|
287
300
|
if success {
|
|
288
301
|
resolve?(["success": true])
|
|
289
302
|
} else {
|
|
290
|
-
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error":
|
|
303
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
291
304
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
292
305
|
}
|
|
293
306
|
})
|
|
@@ -301,23 +314,24 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
301
314
|
guard let peerId = data.value(forKey: "peerId") as? String,
|
|
302
315
|
let role = data.value(forKey: "role") as? String
|
|
303
316
|
else {
|
|
304
|
-
let
|
|
305
|
-
|
|
317
|
+
let errorMessage = "changeRole: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId", "role"])
|
|
318
|
+
emitRequiredKeysError(errorMessage)
|
|
319
|
+
reject?(errorMessage, errorMessage, nil)
|
|
306
320
|
return
|
|
307
321
|
}
|
|
308
322
|
|
|
309
323
|
let force = data.value(forKey: "force") as? Bool ?? false
|
|
310
324
|
|
|
311
325
|
DispatchQueue.main.async { [weak self] in
|
|
312
|
-
guard let peer =
|
|
313
|
-
let role =
|
|
326
|
+
guard let peer = HMSHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers, localPeer: self?.hms?.localPeer),
|
|
327
|
+
let role = HMSHelper.getRoleFromRoleName(role, roles: self?.hms?.roles)
|
|
314
328
|
else { return }
|
|
315
329
|
|
|
316
330
|
self?.hms?.changeRole(for: peer, to: role, force: force, completion: { success, error in
|
|
317
331
|
if success {
|
|
318
332
|
resolve?(["success": true])
|
|
319
333
|
} else {
|
|
320
|
-
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error":
|
|
334
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
321
335
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
322
336
|
}
|
|
323
337
|
})
|
|
@@ -328,8 +342,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
328
342
|
|
|
329
343
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
330
344
|
else {
|
|
331
|
-
let
|
|
332
|
-
|
|
345
|
+
let errorMessage = "changeTrackState: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
346
|
+
emitRequiredKeysError(errorMessage)
|
|
347
|
+
reject?(errorMessage, errorMessage, nil)
|
|
333
348
|
return
|
|
334
349
|
}
|
|
335
350
|
|
|
@@ -337,14 +352,17 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
337
352
|
|
|
338
353
|
DispatchQueue.main.async { [weak self] in
|
|
339
354
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
340
|
-
let track =
|
|
341
|
-
else {
|
|
355
|
+
let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
356
|
+
else {
|
|
357
|
+
reject?(nil, "TRACK_NOT_FOUND", nil)
|
|
358
|
+
return
|
|
359
|
+
}
|
|
342
360
|
|
|
343
361
|
self?.hms?.changeTrackState(for: track, mute: mute, completion: { success, error in
|
|
344
362
|
if success {
|
|
345
363
|
resolve?(["success": true])
|
|
346
364
|
} else {
|
|
347
|
-
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error":
|
|
365
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
348
366
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
349
367
|
}
|
|
350
368
|
})
|
|
@@ -355,8 +373,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
355
373
|
|
|
356
374
|
guard let mute = data.value(forKey: "mute") as? Bool
|
|
357
375
|
else {
|
|
358
|
-
let
|
|
359
|
-
|
|
376
|
+
let errorMessage = "changeTrackStateForRoles: " + HMSHelper.getUnavailableRequiredKey(data, ["mute"])
|
|
377
|
+
emitRequiredKeysError(errorMessage)
|
|
378
|
+
reject?(errorMessage, errorMessage, nil)
|
|
360
379
|
return
|
|
361
380
|
}
|
|
362
381
|
let source = data.value(forKey: "source") as? String
|
|
@@ -373,12 +392,12 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
373
392
|
}
|
|
374
393
|
|
|
375
394
|
DispatchQueue.main.async { [weak self] in
|
|
376
|
-
let encodedTargetedRoles =
|
|
395
|
+
let encodedTargetedRoles = HMSHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
|
|
377
396
|
self?.hms?.changeTrackState(mute: mute, for: decodeType, source: source, roles: encodedTargetedRoles, completion: { success, error in
|
|
378
397
|
if success {
|
|
379
398
|
resolve?(["success": true])
|
|
380
399
|
} else {
|
|
381
|
-
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error":
|
|
400
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
382
401
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
383
402
|
}
|
|
384
403
|
})
|
|
@@ -388,23 +407,23 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
388
407
|
func isMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
389
408
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
390
409
|
else {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
410
|
+
let errorMessage = "isMute: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
411
|
+
emitRequiredKeysError(errorMessage)
|
|
412
|
+
reject?(errorMessage, errorMessage, nil)
|
|
394
413
|
return
|
|
395
414
|
}
|
|
396
415
|
|
|
397
416
|
DispatchQueue.main.async { [weak self] in
|
|
398
417
|
guard let strongSelf = self else { return }
|
|
399
418
|
guard let localPeer = self?.hms?.localPeer,
|
|
400
|
-
let localTrack =
|
|
419
|
+
let localTrack = HMSHelper.getLocalTrackFromTrackId(trackId, localPeer: localPeer)
|
|
401
420
|
else {
|
|
402
421
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
403
|
-
let track =
|
|
422
|
+
let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
404
423
|
else {
|
|
405
|
-
let error = HMSError(id: "120", code: HMSErrorCode.genericErrorUnknown, message: "
|
|
406
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error":
|
|
407
|
-
reject?(nil, "
|
|
424
|
+
let error = HMSError(id: "120", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_NOT_FOUND")
|
|
425
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
426
|
+
reject?(nil, "TRACK_NOT_FOUND", nil)
|
|
408
427
|
return
|
|
409
428
|
}
|
|
410
429
|
let mute = track.isMute()
|
|
@@ -420,8 +439,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
420
439
|
|
|
421
440
|
guard let peerId = data.value(forKey: "peerId") as? String
|
|
422
441
|
else {
|
|
423
|
-
let
|
|
424
|
-
|
|
442
|
+
let errorMessage = "removePeer: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId"])
|
|
443
|
+
emitRequiredKeysError(errorMessage)
|
|
444
|
+
reject?(errorMessage, errorMessage, nil)
|
|
425
445
|
return
|
|
426
446
|
}
|
|
427
447
|
|
|
@@ -430,14 +450,17 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
430
450
|
DispatchQueue.main.async { [weak self] in
|
|
431
451
|
|
|
432
452
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
433
|
-
let peer =
|
|
434
|
-
else {
|
|
453
|
+
let peer = HMSHelper.getRemotePeerFromPeerId(peerId, remotePeers: remotePeers)
|
|
454
|
+
else {
|
|
455
|
+
reject?(nil, "PEER_NOT_FOUND", nil)
|
|
456
|
+
return
|
|
457
|
+
}
|
|
435
458
|
|
|
436
459
|
self?.hms?.removePeer(peer, reason: reason ?? "Removed from room", completion: { success, error in
|
|
437
460
|
if success {
|
|
438
461
|
resolve?(["success": true])
|
|
439
462
|
} else {
|
|
440
|
-
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error":
|
|
463
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
441
464
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
442
465
|
}
|
|
443
466
|
})
|
|
@@ -449,8 +472,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
449
472
|
guard let lock = data.value(forKey: "lock") as? Bool,
|
|
450
473
|
let reason = data.value(forKey: "reason") as? String
|
|
451
474
|
else {
|
|
452
|
-
let
|
|
453
|
-
|
|
475
|
+
let errorMessage = "endRoom: " + HMSHelper.getUnavailableRequiredKey(data, ["lock", "reason"])
|
|
476
|
+
emitRequiredKeysError(errorMessage)
|
|
477
|
+
reject?(errorMessage, errorMessage, nil)
|
|
454
478
|
return
|
|
455
479
|
}
|
|
456
480
|
|
|
@@ -459,7 +483,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
459
483
|
if success {
|
|
460
484
|
resolve?(["success": true])
|
|
461
485
|
} else {
|
|
462
|
-
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error":
|
|
486
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
463
487
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
464
488
|
}
|
|
465
489
|
})
|
|
@@ -469,22 +493,19 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
469
493
|
func isPlaybackAllowed(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
470
494
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
471
495
|
else {
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
496
|
+
let errorMessage = "isPlaybackAllowed: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
497
|
+
emitRequiredKeysError(errorMessage)
|
|
498
|
+
reject?(errorMessage, errorMessage, nil)
|
|
475
499
|
return
|
|
476
500
|
}
|
|
477
501
|
DispatchQueue.main.async { [weak self] in
|
|
478
|
-
guard let strongSelf = self else { return }
|
|
479
502
|
guard let remotePeers = self?.hms?.remotePeers
|
|
480
503
|
else {
|
|
481
|
-
|
|
482
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id": strongSelf.id])
|
|
483
|
-
reject?(nil, "NOT_FOUND", nil)
|
|
504
|
+
reject?(nil, "REMOTE_PEERS_NOT_FOUND", nil)
|
|
484
505
|
return
|
|
485
506
|
}
|
|
486
|
-
let remoteAudioTrack =
|
|
487
|
-
let remoteVideoTrack =
|
|
507
|
+
let remoteAudioTrack = HMSHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
|
|
508
|
+
let remoteVideoTrack = HMSHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
488
509
|
if remoteAudioTrack != nil {
|
|
489
510
|
let isPlaybackAllowed = remoteAudioTrack?.isPlaybackAllowed()
|
|
490
511
|
resolve?(isPlaybackAllowed)
|
|
@@ -494,16 +515,14 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
494
515
|
resolve?(isPlaybackAllowed)
|
|
495
516
|
return
|
|
496
517
|
} else {
|
|
497
|
-
|
|
498
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id": strongSelf.id])
|
|
499
|
-
reject?(nil, "NOT_FOUND", nil)
|
|
518
|
+
reject?(nil, "TRACK_NOT_FOUND", nil)
|
|
500
519
|
return
|
|
501
520
|
}
|
|
502
521
|
}
|
|
503
522
|
}
|
|
504
523
|
|
|
505
524
|
func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
506
|
-
let roomData =
|
|
525
|
+
let roomData = HMSDecoder.getHmsRoom(hms?.room)
|
|
507
526
|
|
|
508
527
|
resolve?(roomData)
|
|
509
528
|
}
|
|
@@ -512,8 +531,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
512
531
|
guard let trackId = data.value(forKey: "trackId") as? String,
|
|
513
532
|
let playbackAllowed = data.value(forKey: "playbackAllowed") as? Bool
|
|
514
533
|
else {
|
|
515
|
-
let
|
|
516
|
-
|
|
534
|
+
let errorMessage = "setPlaybackAllowed: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId", "playbackAllowed"])
|
|
535
|
+
emitRequiredKeysError(errorMessage)
|
|
517
536
|
return
|
|
518
537
|
}
|
|
519
538
|
DispatchQueue.main.async { [weak self] in
|
|
@@ -521,8 +540,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
521
540
|
else {
|
|
522
541
|
return
|
|
523
542
|
}
|
|
524
|
-
let remoteAudioTrack =
|
|
525
|
-
let remoteVideoTrack =
|
|
543
|
+
let remoteAudioTrack = HMSHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
|
|
544
|
+
let remoteVideoTrack = HMSHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
526
545
|
if remoteAudioTrack != nil {
|
|
527
546
|
if playbackAllowed {
|
|
528
547
|
remoteAudioTrack?.setPlaybackAllowed(playbackAllowed)
|
|
@@ -538,9 +557,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
538
557
|
func changeMetadata(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
539
558
|
guard let metadata = data.value(forKey: "metadata") as? String
|
|
540
559
|
else {
|
|
541
|
-
let
|
|
542
|
-
|
|
543
|
-
reject?(
|
|
560
|
+
let errorMessage = "changeMetadata: " + HMSHelper.getUnavailableRequiredKey(data, ["metadata"])
|
|
561
|
+
emitRequiredKeysError(errorMessage)
|
|
562
|
+
reject?(errorMessage, errorMessage, nil)
|
|
544
563
|
return
|
|
545
564
|
}
|
|
546
565
|
|
|
@@ -549,7 +568,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
549
568
|
resolve?(["success": success])
|
|
550
569
|
return
|
|
551
570
|
} else {
|
|
552
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error":
|
|
571
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HMSDecoder.getError(error), "id": self.id])
|
|
553
572
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
554
573
|
return
|
|
555
574
|
}
|
|
@@ -560,8 +579,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
560
579
|
guard let trackId = data.value(forKey: "trackId") as? String,
|
|
561
580
|
let volume = data.value(forKey: "volume") as? Double
|
|
562
581
|
else {
|
|
563
|
-
let
|
|
564
|
-
|
|
582
|
+
let errorMessage = "setVolume: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId", "volume"])
|
|
583
|
+
emitRequiredKeysError(errorMessage)
|
|
565
584
|
return
|
|
566
585
|
}
|
|
567
586
|
|
|
@@ -569,51 +588,53 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
569
588
|
guard let strongSelf = self else { return }
|
|
570
589
|
let remotePeers = self?.hms?.remotePeers
|
|
571
590
|
|
|
572
|
-
let remoteAudioTrack =
|
|
591
|
+
let remoteAudioTrack = HMSHelper.getRemoteAudioAuxiliaryTrackFromTrackId(trackId, remotePeers)
|
|
573
592
|
|
|
574
593
|
if remoteAudioTrack != nil {
|
|
575
594
|
remoteAudioTrack?.setVolume(volume)
|
|
576
595
|
} else {
|
|
577
|
-
let error = HMSError(id: "125", code: HMSErrorCode.genericErrorUnknown, message: "
|
|
578
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error":
|
|
596
|
+
let error = HMSError(id: "125", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_NOT_FOUND")
|
|
597
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
579
598
|
}
|
|
580
599
|
}
|
|
581
600
|
}
|
|
582
601
|
|
|
583
602
|
func startRTMPOrRecording(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
584
|
-
guard let record = data.value(forKey: "record") as? Bool
|
|
603
|
+
guard let record = data.value(forKey: "record") as? Bool,
|
|
604
|
+
let meetingString = data.value(forKey: "meetingURL") as? String
|
|
585
605
|
else {
|
|
586
|
-
let
|
|
587
|
-
|
|
606
|
+
let errorMessage = "startRTMPOrRecording: " + HMSHelper.getUnavailableRequiredKey(data, ["record", "meetingURL"])
|
|
607
|
+
emitRequiredKeysError(errorMessage)
|
|
608
|
+
reject?(errorMessage, errorMessage, nil)
|
|
588
609
|
return
|
|
589
610
|
}
|
|
590
611
|
|
|
591
|
-
let meetingString = data.value(forKey: "meetingURL") as? String
|
|
592
612
|
let rtmpStrings = data.value(forKey: "rtmpURLs") as? [String]
|
|
593
613
|
|
|
594
614
|
var meetingUrl: URL?
|
|
595
|
-
if let meetLink = meetingString {
|
|
596
|
-
meetingUrl =
|
|
615
|
+
if let meetLink = URL(string: meetingString) {
|
|
616
|
+
meetingUrl = meetLink
|
|
597
617
|
} else {
|
|
598
618
|
let error = HMSError(id: "127", code: HMSErrorCode.genericErrorUnknown, message: "INVALID_MEETING_URL_PASSED")
|
|
599
|
-
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error":
|
|
619
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
|
|
620
|
+
reject?("INVALID_MEETING_URL_PASSED", "INVALID_MEETING_URL_PASSED", nil)
|
|
600
621
|
}
|
|
601
622
|
|
|
602
|
-
let URLs =
|
|
623
|
+
let URLs = HMSHelper.getRtmpUrls(rtmpStrings)
|
|
603
624
|
|
|
604
625
|
let config = HMSRTMPConfig(meetingURL: meetingUrl, rtmpURLs: URLs, record: record)
|
|
605
626
|
hms?.startRTMPOrRecording(config: config, completion: { success, error in
|
|
606
627
|
if success {
|
|
607
|
-
let roomData =
|
|
628
|
+
let roomData = HMSDecoder.getHmsRoom(self.hms?.room)
|
|
608
629
|
let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
|
|
609
630
|
|
|
610
|
-
let localPeerData =
|
|
611
|
-
let remotePeerData =
|
|
631
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(self.hms?.localPeer)
|
|
632
|
+
let remotePeerData = HMSDecoder.getHmsRemotePeers(self.hms?.remotePeers)
|
|
612
633
|
self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
613
634
|
resolve?(["success": success])
|
|
614
635
|
return
|
|
615
636
|
} else {
|
|
616
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error":
|
|
637
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HMSDecoder.getError(error), "id": self.id])
|
|
617
638
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
618
639
|
return
|
|
619
640
|
}
|
|
@@ -623,16 +644,16 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
623
644
|
func stopRtmpAndRecording(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
624
645
|
hms?.stopRTMPAndRecording(completion: { success, error in
|
|
625
646
|
if success {
|
|
626
|
-
let roomData =
|
|
647
|
+
let roomData = HMSDecoder.getHmsRoom(self.hms?.room)
|
|
627
648
|
let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
|
|
628
649
|
|
|
629
|
-
let localPeerData =
|
|
630
|
-
let remotePeerData =
|
|
650
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(self.hms?.localPeer)
|
|
651
|
+
let remotePeerData = HMSDecoder.getHmsRemotePeers(self.hms?.remotePeers)
|
|
631
652
|
self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
632
653
|
resolve?(["success": success])
|
|
633
654
|
return
|
|
634
655
|
} else {
|
|
635
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error":
|
|
656
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HMSDecoder.getError(error), "id": self.id])
|
|
636
657
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
637
658
|
return
|
|
638
659
|
}
|
|
@@ -642,27 +663,28 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
642
663
|
func startHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
643
664
|
guard let meetingURLVariants = data.value(forKey: "meetingURLVariants") as? [[String: Any]]?
|
|
644
665
|
else {
|
|
645
|
-
let
|
|
646
|
-
|
|
666
|
+
let errorMessage = "startHLSStreaming: " + HMSHelper.getUnavailableRequiredKey(data, ["meetingURLVariants"])
|
|
667
|
+
emitRequiredKeysError(errorMessage)
|
|
668
|
+
reject?(errorMessage, errorMessage, nil)
|
|
647
669
|
return
|
|
648
670
|
}
|
|
649
671
|
|
|
650
|
-
let recordConfig =
|
|
651
|
-
let hlsMeetingUrlVariant =
|
|
672
|
+
let recordConfig = HMSHelper.getHlsRecordingConfig(data)
|
|
673
|
+
let hlsMeetingUrlVariant = HMSHelper.getHMSHLSMeetingURLVariants(meetingURLVariants)
|
|
652
674
|
let config = HMSHLSConfig(variants: hlsMeetingUrlVariant, recording: recordConfig)
|
|
653
675
|
|
|
654
676
|
hms?.startHLSStreaming(config: config, completion: { success, error in
|
|
655
677
|
if success {
|
|
656
|
-
let roomData =
|
|
678
|
+
let roomData = HMSDecoder.getHmsRoom(self.hms?.room)
|
|
657
679
|
let type = self.getString(from: HMSRoomUpdate.hlsStreamingStateUpdated)
|
|
658
680
|
|
|
659
|
-
let localPeerData =
|
|
660
|
-
let remotePeerData =
|
|
681
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(self.hms?.localPeer)
|
|
682
|
+
let remotePeerData = HMSDecoder.getHmsRemotePeers(self.hms?.remotePeers)
|
|
661
683
|
self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
662
684
|
resolve?(["success": success])
|
|
663
685
|
return
|
|
664
686
|
} else {
|
|
665
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error":
|
|
687
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HMSDecoder.getError(error), "id": self.id])
|
|
666
688
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
667
689
|
return
|
|
668
690
|
}
|
|
@@ -672,16 +694,16 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
672
694
|
func stopHLSStreaming(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
673
695
|
hms?.stopHLSStreaming(config: nil, completion: { success, error in
|
|
674
696
|
if success {
|
|
675
|
-
let roomData =
|
|
697
|
+
let roomData = HMSDecoder.getHmsRoom(self.hms?.room)
|
|
676
698
|
let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
|
|
677
699
|
|
|
678
|
-
let localPeerData =
|
|
679
|
-
let remotePeerData =
|
|
700
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(self.hms?.localPeer)
|
|
701
|
+
let remotePeerData = HMSDecoder.getHmsRemotePeers(self.hms?.remotePeers)
|
|
680
702
|
self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
681
703
|
resolve?(["success": success])
|
|
682
704
|
return
|
|
683
705
|
} else {
|
|
684
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error":
|
|
706
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HMSDecoder.getError(error), "id": self.id])
|
|
685
707
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
686
708
|
return
|
|
687
709
|
}
|
|
@@ -691,9 +713,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
691
713
|
func changeName(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
692
714
|
guard let name = data.value(forKey: "name") as? String
|
|
693
715
|
else {
|
|
694
|
-
let
|
|
695
|
-
|
|
696
|
-
reject?(
|
|
716
|
+
let errorMessage = "changeName: " + HMSHelper.getUnavailableRequiredKey(data, ["name"])
|
|
717
|
+
emitRequiredKeysError(errorMessage)
|
|
718
|
+
reject?(errorMessage, errorMessage, nil)
|
|
697
719
|
return
|
|
698
720
|
}
|
|
699
721
|
|
|
@@ -701,12 +723,49 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
701
723
|
if success {
|
|
702
724
|
resolve?(["success": success])
|
|
703
725
|
} else {
|
|
704
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error":
|
|
726
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HMSDecoder.getError(error), "id": self.id])
|
|
705
727
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
706
728
|
}
|
|
707
729
|
}
|
|
708
730
|
}
|
|
709
731
|
|
|
732
|
+
func remoteMuteAllAudio() {
|
|
733
|
+
let allAudioTracks = HMSUtilities.getAllAudioTracks(in: (self.hms?.room)!!)
|
|
734
|
+
var customError: HMSError? = nil
|
|
735
|
+
for audioTrack in allAudioTracks {
|
|
736
|
+
self.hms?.changeTrackState(for: audioTrack, mute: true, completion: { success, error in
|
|
737
|
+
if success {
|
|
738
|
+
} else {
|
|
739
|
+
customError = error
|
|
740
|
+
}
|
|
741
|
+
})
|
|
742
|
+
}
|
|
743
|
+
if (customError != nil) {
|
|
744
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(customError), "id": id])
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
func setPlaybackForAllAudio(_ data: NSDictionary) {
|
|
749
|
+
guard let mute = data.value(forKey: "mute") as? Bool
|
|
750
|
+
else {
|
|
751
|
+
let errorMessage = "setPlaybackForAllAudio: " + HMSHelper.getUnavailableRequiredKey(data, ["setPlaybackForAllAudio"])
|
|
752
|
+
emitRequiredKeysError(errorMessage)
|
|
753
|
+
return
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
DispatchQueue.main.async { [weak self] in
|
|
757
|
+
let remotePeers = self?.hms?.remotePeers
|
|
758
|
+
for peer in remotePeers ?? [] {
|
|
759
|
+
peer.remoteAudioTrack()?.setPlaybackAllowed(!mute)
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
let roomData = HMSDecoder.getHmsRoom(hms?.room)
|
|
763
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
764
|
+
let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
765
|
+
|
|
766
|
+
self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
767
|
+
}
|
|
768
|
+
|
|
710
769
|
func enableRTCStats() {
|
|
711
770
|
rtcStatsAttached = true
|
|
712
771
|
}
|
|
@@ -715,49 +774,48 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
715
774
|
rtcStatsAttached = false
|
|
716
775
|
}
|
|
717
776
|
|
|
718
|
-
|
|
719
|
-
//
|
|
720
|
-
//
|
|
721
|
-
//
|
|
722
|
-
//
|
|
723
|
-
//
|
|
724
|
-
//
|
|
725
|
-
//
|
|
726
|
-
//
|
|
777
|
+
// TODO: to be implemented after volume is exposed for iOS
|
|
778
|
+
// func getVolume(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
779
|
+
// guard let trackId = data.value(forKey: "trackId") as? String
|
|
780
|
+
// else {
|
|
781
|
+
// let errorMessage = "getVolume: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
782
|
+
// emitRequiredKeysError(errorMessage)
|
|
783
|
+
// reject?(errorMessage, errorMessage, nil)
|
|
784
|
+
// return
|
|
785
|
+
// }
|
|
727
786
|
//
|
|
728
|
-
//
|
|
787
|
+
// if (localPeer?.localAudioTrack()?.trackId == trackId) {
|
|
729
788
|
//
|
|
730
|
-
//
|
|
731
|
-
//
|
|
789
|
+
// }
|
|
790
|
+
// }
|
|
732
791
|
|
|
733
|
-
//
|
|
734
|
-
//
|
|
792
|
+
// func setLocalVideoSettings(_ data: NSDictionary) {
|
|
793
|
+
// let localVideoTrack = self.hms?.localPeer?.localVideoTrack()
|
|
735
794
|
//
|
|
736
|
-
//
|
|
737
|
-
//
|
|
738
|
-
//
|
|
739
|
-
//
|
|
740
|
-
//
|
|
741
|
-
//
|
|
742
|
-
//
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
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
|
|
746
805
|
func on(join room: HMSRoom) {
|
|
747
|
-
|
|
748
|
-
let
|
|
749
|
-
let
|
|
750
|
-
let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
806
|
+
let roomData = HMSDecoder.getHmsRoom(room)
|
|
807
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
808
|
+
let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
751
809
|
|
|
752
|
-
let decodedRoles =
|
|
810
|
+
let decodedRoles = HMSDecoder.getAllRoles(hms?.roles)
|
|
753
811
|
self.recentPreviewTracks = []
|
|
754
812
|
self.delegate?.emitEvent(ON_JOIN, ["event": ON_JOIN, "id": self.id, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "roles": decodedRoles])
|
|
755
813
|
}
|
|
756
814
|
|
|
757
815
|
func onPreview(room: HMSRoom, localTracks: [HMSTrack]) {
|
|
758
|
-
let previewTracks =
|
|
759
|
-
let hmsRoom =
|
|
760
|
-
let localPeerData =
|
|
816
|
+
let previewTracks = HMSDecoder.getPreviewTracks(localTracks)
|
|
817
|
+
let hmsRoom = HMSDecoder.getHmsRoom(room)
|
|
818
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
761
819
|
|
|
762
820
|
previewInProgress = false
|
|
763
821
|
self.delegate?.emitEvent(ON_PREVIEW, ["event": ON_PREVIEW, "id": self.id, "room": hmsRoom, "previewTracks": previewTracks, "localPeer": localPeerData])
|
|
@@ -765,55 +823,55 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
765
823
|
|
|
766
824
|
func on(room: HMSRoom, update: HMSRoomUpdate) {
|
|
767
825
|
// Listener for any updation in room
|
|
768
|
-
let roomData =
|
|
826
|
+
let roomData = HMSDecoder.getHmsRoom(room)
|
|
769
827
|
let type = getString(from: update)
|
|
770
828
|
|
|
771
|
-
let localPeerData =
|
|
772
|
-
let remotePeerData =
|
|
829
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
830
|
+
let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
773
831
|
|
|
774
832
|
self.delegate?.emitEvent(ON_ROOM_UPDATE, ["event": ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
775
833
|
}
|
|
776
834
|
|
|
777
835
|
func on(peer: HMSPeer, update: HMSPeerUpdate) {
|
|
778
836
|
// Listener for updates in Peers
|
|
779
|
-
let roomData =
|
|
837
|
+
let roomData = HMSDecoder.getHmsRoom(hms?.room)
|
|
780
838
|
let type = getString(from: update)
|
|
781
839
|
|
|
782
|
-
let localPeerData =
|
|
783
|
-
let remotePeerData =
|
|
784
|
-
let hmsPeer =
|
|
840
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
841
|
+
let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
842
|
+
let hmsPeer = HMSDecoder.getHmsPeer(peer)
|
|
785
843
|
|
|
786
844
|
self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "peer": hmsPeer])
|
|
787
845
|
}
|
|
788
846
|
|
|
789
847
|
func on(track: HMSTrack, update: HMSTrackUpdate, for peer: HMSPeer) {
|
|
790
848
|
// Listener for updates in Tracks
|
|
791
|
-
let roomData =
|
|
849
|
+
let roomData = HMSDecoder.getHmsRoom(hms?.room)
|
|
792
850
|
let type = getString(from: update)
|
|
793
851
|
|
|
794
|
-
let localPeerData =
|
|
795
|
-
let remotePeerData =
|
|
796
|
-
let hmsPeer =
|
|
797
|
-
let hmsTrack =
|
|
852
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
853
|
+
let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
854
|
+
let hmsPeer = HMSDecoder.getHmsPeer(peer)
|
|
855
|
+
let hmsTrack = HMSDecoder.getHmsTrack(track)
|
|
798
856
|
|
|
799
857
|
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])
|
|
800
858
|
}
|
|
801
859
|
|
|
802
860
|
func on(error: HMSError) {
|
|
803
861
|
if previewInProgress { previewInProgress = false }
|
|
804
|
-
self.delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error":
|
|
862
|
+
self.delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
|
|
805
863
|
}
|
|
806
864
|
|
|
807
865
|
func on(message: HMSMessage) {
|
|
808
|
-
self.delegate?.emitEvent(ON_MESSAGE, ["event": ON_MESSAGE, "id": self.id, "sender":
|
|
866
|
+
self.delegate?.emitEvent(ON_MESSAGE, ["event": ON_MESSAGE, "id": self.id, "sender": HMSDecoder.getHmsPeer(message.sender), "recipient": HMSDecoder.getHmsMessageRecipient(message.recipient), "time": message.time.timeIntervalSince1970 * 1000, "message": message.message, "type": message.type])
|
|
809
867
|
}
|
|
810
868
|
|
|
811
869
|
func on(updated speakers: [HMSSpeaker]) {
|
|
812
870
|
var speakerPeerIds: [[String: Any]] = []
|
|
813
871
|
for speaker in speakers {
|
|
814
|
-
speakerPeerIds.append(["peer":
|
|
872
|
+
speakerPeerIds.append(["peer": HMSDecoder.getHmsPeer(speaker.peer), "level": speaker.level, "track": HMSDecoder.getHmsTrack(speaker.track)])
|
|
815
873
|
}
|
|
816
|
-
self.delegate?.emitEvent(ON_SPEAKER, ["event": ON_SPEAKER, "id": self.id, "
|
|
874
|
+
self.delegate?.emitEvent(ON_SPEAKER, ["event": ON_SPEAKER, "id": self.id, "speakers": speakerPeerIds])
|
|
817
875
|
}
|
|
818
876
|
|
|
819
877
|
func onReconnecting() {
|
|
@@ -825,13 +883,13 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
825
883
|
}
|
|
826
884
|
|
|
827
885
|
func on(roleChangeRequest: HMSRoleChangeRequest) {
|
|
828
|
-
let decodedRoleChangeRequest =
|
|
886
|
+
let decodedRoleChangeRequest = HMSDecoder.getHmsRoleChangeRequest(roleChangeRequest, self.id)
|
|
829
887
|
recentRoleChangeRequest = roleChangeRequest
|
|
830
888
|
self.delegate?.emitEvent(ON_ROLE_CHANGE_REQUEST, decodedRoleChangeRequest)
|
|
831
889
|
}
|
|
832
890
|
|
|
833
891
|
func on(changeTrackStateRequest: HMSChangeTrackStateRequest) {
|
|
834
|
-
let decodedChangeTrackStateRequest =
|
|
892
|
+
let decodedChangeTrackStateRequest = HMSDecoder.getHmsChangeTrackStateRequest(changeTrackStateRequest, id)
|
|
835
893
|
delegate?.emitEvent("ON_CHANGE_TRACK_STATE_REQUEST", decodedChangeTrackStateRequest)
|
|
836
894
|
}
|
|
837
895
|
|
|
@@ -839,7 +897,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
839
897
|
let requestedBy = notification.requestedBy as HMSPeer?
|
|
840
898
|
var decodedRequestedBy: [String: Any]?
|
|
841
899
|
if let requested = requestedBy {
|
|
842
|
-
decodedRequestedBy =
|
|
900
|
+
decodedRequestedBy = HMSDecoder.getHmsPeer(requested)
|
|
843
901
|
}
|
|
844
902
|
let reason = notification.reason
|
|
845
903
|
let roomEnded = notification.roomEnded
|
|
@@ -850,9 +908,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
850
908
|
if (!rtcStatsAttached) {
|
|
851
909
|
return
|
|
852
910
|
}
|
|
853
|
-
let video =
|
|
854
|
-
let audio =
|
|
855
|
-
let combined =
|
|
911
|
+
let video = HMSDecoder.getHMSRTCStats(rtcStats.video)
|
|
912
|
+
let audio = HMSDecoder.getHMSRTCStats(rtcStats.audio)
|
|
913
|
+
let combined = HMSDecoder.getHMSRTCStats(rtcStats.combined)
|
|
856
914
|
|
|
857
915
|
self.delegate?.emitEvent(ON_RTC_STATS, ["video": video, "audio": audio, "combined": combined, "id": self.id])
|
|
858
916
|
}
|
|
@@ -861,9 +919,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
861
919
|
if (!rtcStatsAttached) {
|
|
862
920
|
return
|
|
863
921
|
}
|
|
864
|
-
let localStats =
|
|
865
|
-
let localTrack =
|
|
866
|
-
let decodedPeer =
|
|
922
|
+
let localStats = HMSDecoder.getLocalAudioStats(localAudioStats)
|
|
923
|
+
let localTrack = HMSDecoder.getHmsLocalAudioTrack(track)
|
|
924
|
+
let decodedPeer = HMSDecoder.getHmsPeer(peer)
|
|
867
925
|
|
|
868
926
|
self.delegate?.emitEvent(ON_LOCAL_AUDIO_STATS, ["localAudioStats": localStats, "track": localTrack, "peer": decodedPeer, "id": self.id])
|
|
869
927
|
}
|
|
@@ -872,9 +930,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
872
930
|
if (!rtcStatsAttached) {
|
|
873
931
|
return
|
|
874
932
|
}
|
|
875
|
-
let localStats =
|
|
876
|
-
let decodedPeer =
|
|
877
|
-
let localTrack =
|
|
933
|
+
let localStats = HMSDecoder.getLocalVideoStats(localVideoStats)
|
|
934
|
+
let decodedPeer = HMSDecoder.getHmsPeer(peer)
|
|
935
|
+
let localTrack = HMSDecoder.getHmsLocalVideoTrack(track)
|
|
878
936
|
|
|
879
937
|
self.delegate?.emitEvent(ON_LOCAL_VIDEO_STATS, ["localVideoStats": localStats, "track": localTrack, "peer": decodedPeer, "id": self.id])
|
|
880
938
|
}
|
|
@@ -883,9 +941,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
883
941
|
if (!rtcStatsAttached) {
|
|
884
942
|
return
|
|
885
943
|
}
|
|
886
|
-
let remoteStats =
|
|
887
|
-
let remoteTrack =
|
|
888
|
-
let decodedPeer =
|
|
944
|
+
let remoteStats = HMSDecoder.getRemoteAudioStats(remoteAudioStats)
|
|
945
|
+
let remoteTrack = HMSDecoder.getHMSRemoteAudioTrack(track)
|
|
946
|
+
let decodedPeer = HMSDecoder.getHmsPeer(peer)
|
|
889
947
|
|
|
890
948
|
self.delegate?.emitEvent(ON_REMOTE_AUDIO_STATS, ["remoteAudioStats": remoteStats, "track": remoteTrack, "peer": decodedPeer, "id": self.id])
|
|
891
949
|
}
|
|
@@ -894,51 +952,14 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
894
952
|
if (!rtcStatsAttached) {
|
|
895
953
|
return
|
|
896
954
|
}
|
|
897
|
-
let remoteStats =
|
|
898
|
-
let decodedPeer =
|
|
899
|
-
let remoteTrack =
|
|
955
|
+
let remoteStats = HMSDecoder.getRemoteVideoStats(remoteVideoStats)
|
|
956
|
+
let decodedPeer = HMSDecoder.getHmsPeer(peer)
|
|
957
|
+
let remoteTrack = HMSDecoder.getHMSRemoteVideoTrack(track)
|
|
900
958
|
|
|
901
959
|
self.delegate?.emitEvent(ON_REMOTE_VIDEO_STATS, ["remoteVideoStats": remoteStats, "track": remoteTrack, "peer": decodedPeer, "id": self.id])
|
|
902
960
|
}
|
|
903
961
|
|
|
904
962
|
// MARK: Helper Functions
|
|
905
|
-
func remoteMuteAllAudio() {
|
|
906
|
-
let allAudioTracks = HMSUtilities.getAllAudioTracks(in: (self.hms?.room)!!)
|
|
907
|
-
var customError: HMSError? = nil
|
|
908
|
-
for audioTrack in allAudioTracks {
|
|
909
|
-
self.hms?.changeTrackState(for: audioTrack, mute: true, completion: { success, error in
|
|
910
|
-
if success {
|
|
911
|
-
} else {
|
|
912
|
-
customError = error
|
|
913
|
-
}
|
|
914
|
-
})
|
|
915
|
-
}
|
|
916
|
-
if (customError != nil) {
|
|
917
|
-
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(customError), "id": id])
|
|
918
|
-
}
|
|
919
|
-
}
|
|
920
|
-
|
|
921
|
-
func setPlaybackForAllAudio(_ data: NSDictionary) {
|
|
922
|
-
guard let mute = data.value(forKey: "mute") as? Bool
|
|
923
|
-
else {
|
|
924
|
-
let error = HMSError(id: "119", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
925
|
-
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
|
|
926
|
-
return
|
|
927
|
-
}
|
|
928
|
-
|
|
929
|
-
DispatchQueue.main.async { [weak self] in
|
|
930
|
-
let remotePeers = self?.hms?.remotePeers
|
|
931
|
-
for peer in remotePeers ?? [] {
|
|
932
|
-
peer.remoteAudioTrack()?.setPlaybackAllowed(!mute)
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
let roomData = HmsDecoder.getHmsRoom(hms?.room)
|
|
936
|
-
let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
937
|
-
let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
938
|
-
|
|
939
|
-
self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
940
|
-
}
|
|
941
|
-
|
|
942
963
|
private func getString(from update: HMSPeerUpdate) -> String {
|
|
943
964
|
switch update {
|
|
944
965
|
case .peerJoined:
|
|
@@ -1001,7 +1022,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1001
1022
|
}
|
|
1002
1023
|
}
|
|
1003
1024
|
|
|
1004
|
-
// extension
|
|
1025
|
+
// extension HMSRNSDK: HMSLogger {
|
|
1005
1026
|
// func log(_ message: String, _ level: HMSLogLevel) {
|
|
1006
1027
|
//
|
|
1007
1028
|
// }
|