@100mslive/react-native-hms 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
- 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/build.gradle +3 -2
- package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +226 -256
- package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +82 -31
- package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +99 -22
- package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +368 -221
- package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +66 -0
- package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +43 -24
- package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
- package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +14 -11
- package/android/src/main/res/layout/hms_view.xml +19 -0
- package/ios/HmsDecoder.swift +91 -22
- package/ios/HmsHelper.swift +34 -3
- package/ios/HmsManager.m +11 -9
- package/ios/HmsManager.swift +32 -18
- package/ios/HmsSDK.swift +193 -43
- package/ios/HmsView.swift +22 -54
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +3 -0
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +10 -6
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSConfig.js +20 -0
- package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -0
- package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js +23 -0
- package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -0
- package/lib/commonjs/classes/HMSHLSStreamingState.js +23 -0
- package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -0
- package/lib/commonjs/classes/HMSHLSVariant.js +29 -0
- package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -0
- package/lib/commonjs/classes/HMSLocalAudioTrack.js +20 -0
- package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalVideoTrack.js +18 -0
- package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js +55 -1
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js +19 -0
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js +19 -0
- 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 +6 -0
- package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +297 -145
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSettings.js +3 -0
- package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
- package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
- package/lib/commonjs/classes/HmsView.js +26 -4
- package/lib/commonjs/classes/HmsView.js.map +1 -1
- package/lib/commonjs/index.js +70 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSChangeTrackStateRequest.js +3 -0
- package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +10 -6
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSHLSConfig.js +11 -0
- package/lib/module/classes/HMSHLSConfig.js.map +1 -0
- package/lib/module/classes/HMSHLSMeetingURLVariant.js +14 -0
- package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -0
- package/lib/module/classes/HMSHLSStreamingState.js +14 -0
- package/lib/module/classes/HMSHLSStreamingState.js.map +1 -0
- package/lib/module/classes/HMSHLSVariant.js +20 -0
- package/lib/module/classes/HMSHLSVariant.js.map +1 -0
- package/lib/module/classes/HMSLocalAudioTrack.js +17 -0
- package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSLocalPeer.js.map +1 -1
- package/lib/module/classes/HMSLocalVideoTrack.js +15 -0
- package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSLogger.js +55 -1
- package/lib/module/classes/HMSLogger.js.map +1 -1
- package/lib/module/classes/HMSRemoteAudioTrack.js +16 -0
- package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSRemoteVideoTrack.js +16 -0
- 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 +6 -0
- package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +295 -146
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSTrackSettings.js +3 -0
- package/lib/module/classes/HMSTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSVideoCodec.js +4 -4
- package/lib/module/classes/HMSVideoCodec.js.map +1 -1
- package/lib/module/classes/HmsView.js +23 -4
- package/lib/module/classes/HmsView.js.map +1 -1
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -0
- package/lib/typescript/classes/HMSHLSConfig.d.ts +7 -0
- package/lib/typescript/classes/HMSHLSMeetingURLVariant.d.ts +8 -0
- package/lib/typescript/classes/HMSHLSStreamingState.d.ts +9 -0
- package/lib/typescript/classes/HMSHLSVariant.d.ts +12 -0
- package/lib/typescript/classes/HMSLocalPeer.d.ts +3 -0
- package/lib/typescript/classes/HMSLogger.d.ts +9 -0
- package/lib/typescript/classes/HMSRoom.d.ts +3 -0
- package/lib/typescript/classes/HMSRoomUpdate.d.ts +7 -1
- package/lib/typescript/classes/HMSSDK.d.ts +22 -13
- package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
- package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
- package/lib/typescript/index.d.ts +5 -0
- package/package.json +1 -1
- package/react-native-hms.podspec +1 -1
- package/src/classes/HMSChangeTrackStateRequest.ts +7 -1
- package/src/classes/HMSEncoder.ts +5 -1
- package/src/classes/HMSHLSConfig.ts +9 -0
- package/src/classes/HMSHLSMeetingURLVariant.ts +9 -0
- package/src/classes/HMSHLSStreamingState.ts +11 -0
- package/src/classes/HMSHLSVariant.ts +18 -0
- package/src/classes/HMSLocalAudioTrack.ts +16 -0
- package/src/classes/HMSLocalPeer.ts +3 -0
- package/src/classes/HMSLocalVideoTrack.ts +15 -0
- package/src/classes/HMSLogger.ts +28 -1
- package/src/classes/HMSRemoteAudioTrack.ts +16 -0
- package/src/classes/HMSRemoteVideoTrack.ts +16 -0
- package/src/classes/HMSRoom.ts +4 -0
- package/src/classes/HMSRoomUpdate.ts +6 -0
- package/src/classes/HMSSDK.tsx +221 -84
- package/src/classes/HMSTrackSettings.ts +3 -0
- package/src/classes/HMSVideoCodec.ts +4 -4
- package/src/classes/HmsView.tsx +32 -4
- package/src/index.ts +5 -0
- package/android/.gradle/6.9/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/6.9/javaCompile/classAnalysis.bin +0 -0
- package/android/.gradle/6.9/javaCompile/jarAnalysis.bin +0 -0
- package/android/.gradle/6.9/javaCompile/javaCompile.lock +0 -0
- package/android/.gradle/6.9/javaCompile/taskHistory.bin +0 -0
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.project +0 -34
package/ios/HmsManager.swift
CHANGED
|
@@ -99,52 +99,52 @@ class HmsManager: RCTEventEmitter{
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
@objc
|
|
102
|
-
func sendBroadcastMessage(_ data: NSDictionary) {
|
|
102
|
+
func sendBroadcastMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
103
103
|
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
104
104
|
|
|
105
|
-
hms?.sendBroadcastMessage(data)
|
|
105
|
+
hms?.sendBroadcastMessage(data, resolve, reject)
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
@objc
|
|
109
|
-
func sendGroupMessage(_ data: NSDictionary) {
|
|
109
|
+
func sendGroupMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
110
110
|
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
111
111
|
|
|
112
|
-
hms?.sendGroupMessage(data)
|
|
112
|
+
hms?.sendGroupMessage(data, resolve, reject)
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
@objc
|
|
116
|
-
func sendDirectMessage(_ data: NSDictionary) {
|
|
116
|
+
func sendDirectMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
117
117
|
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
118
118
|
|
|
119
|
-
hms?.sendDirectMessage(data)
|
|
119
|
+
hms?.sendDirectMessage(data, resolve, reject)
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
@objc
|
|
123
|
-
func acceptRoleChange(_ data: NSDictionary) {
|
|
123
|
+
func acceptRoleChange(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
124
124
|
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
125
125
|
|
|
126
|
-
hms?.acceptRoleChange()
|
|
126
|
+
hms?.acceptRoleChange(resolve, reject)
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
@objc
|
|
130
|
-
func changeRole(_ data: NSDictionary) {
|
|
130
|
+
func changeRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
131
131
|
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
132
132
|
|
|
133
|
-
hms?.changeRole(data)
|
|
133
|
+
hms?.changeRole(data, resolve, reject)
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
@objc
|
|
137
|
-
func changeTrackState(_ data: NSDictionary) {
|
|
137
|
+
func changeTrackState(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
138
138
|
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
139
139
|
|
|
140
|
-
hms?.changeTrackState(data)
|
|
140
|
+
hms?.changeTrackState(data, resolve, reject)
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
@objc
|
|
144
|
-
func
|
|
144
|
+
func changeTrackStateForRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
145
145
|
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
146
146
|
|
|
147
|
-
hms?.
|
|
147
|
+
hms?.changeTrackStateForRoles(data, resolve, reject)
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
@objc
|
|
@@ -160,18 +160,18 @@ class HmsManager: RCTEventEmitter{
|
|
|
160
160
|
|
|
161
161
|
|
|
162
162
|
@objc
|
|
163
|
-
func removePeer(_ data: NSDictionary) {
|
|
163
|
+
func removePeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
164
164
|
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
165
165
|
|
|
166
|
-
hms?.removePeer(data)
|
|
166
|
+
hms?.removePeer(data, resolve, reject)
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
|
|
170
170
|
@objc
|
|
171
|
-
func endRoom(_ data: NSDictionary) {
|
|
171
|
+
func endRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
172
172
|
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
173
173
|
|
|
174
|
-
hms?.endRoom(data)
|
|
174
|
+
hms?.endRoom(data, resolve, reject)
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
@objc
|
|
@@ -237,6 +237,20 @@ class HmsManager: RCTEventEmitter{
|
|
|
237
237
|
hms?.stopRtmpAndRecording(resolve, reject)
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
+
@objc
|
|
241
|
+
func startHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
242
|
+
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
243
|
+
|
|
244
|
+
hms?.startHLSStreaming(data, resolve, reject)
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
@objc
|
|
248
|
+
func stopHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
249
|
+
let hms = HmsHelper.getHms(data, hmsCollection)
|
|
250
|
+
|
|
251
|
+
hms?.stopHLSStreaming(resolve, reject)
|
|
252
|
+
}
|
|
253
|
+
|
|
240
254
|
// @objc
|
|
241
255
|
// func setLocalVideoSettings(_ data: NSDictionary) {
|
|
242
256
|
// let hms = HmsHelper.getHms(data, hmsCollection)
|
package/ios/HmsSDK.swift
CHANGED
|
@@ -7,12 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import HMSSDK
|
|
10
|
+
|
|
11
|
+
|
|
10
12
|
class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
11
13
|
|
|
12
14
|
var hms: HMSSDK?
|
|
13
15
|
var config: HMSConfig?
|
|
14
16
|
var recentRoleChangeRequest: HMSRoleChangeRequest?
|
|
15
|
-
var recentChangeTrackStateRequest: HMSChangeTrackStateRequest?
|
|
16
17
|
var delegate: HmsManager?
|
|
17
18
|
var id: String = "12345"
|
|
18
19
|
|
|
@@ -45,9 +46,17 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
// MARK: - HMS SDK Actions
|
|
49
|
+
|
|
50
|
+
private var previewInProgress = false
|
|
48
51
|
|
|
49
52
|
func preview(_ credentials: NSDictionary) {
|
|
50
53
|
|
|
54
|
+
guard !previewInProgress else {
|
|
55
|
+
let error = HMSError(id: "PREVIEW", code: .joinErrorServer, message: "PREVIEW_IS_IN_PROGRESS", params: ["function": #function, "credentials": credentials])
|
|
56
|
+
on(error: error)
|
|
57
|
+
return
|
|
58
|
+
}
|
|
59
|
+
|
|
51
60
|
guard let authToken = credentials.value(forKey: "authToken") as? String,
|
|
52
61
|
let user = credentials.value(forKey: "username") as? String
|
|
53
62
|
else {
|
|
@@ -66,11 +75,19 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
66
75
|
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata)
|
|
67
76
|
strongSelf.hms?.preview(config: strongSelf.config!, delegate: strongSelf)
|
|
68
77
|
}
|
|
78
|
+
strongSelf.previewInProgress = true
|
|
69
79
|
}
|
|
70
80
|
}
|
|
71
81
|
|
|
82
|
+
|
|
72
83
|
func join(_ credentials: NSDictionary) {
|
|
73
84
|
|
|
85
|
+
guard !previewInProgress else {
|
|
86
|
+
let error = HMSError(id: "PREVIEW", code: .joinErrorServer, message: "PREVIEW_IS_IN_PROGRESS", params: ["function": #function, "credentials": credentials])
|
|
87
|
+
on(error: error)
|
|
88
|
+
return
|
|
89
|
+
}
|
|
90
|
+
|
|
74
91
|
guard let authToken = credentials.value(forKey: "authToken") as? String,
|
|
75
92
|
let user = credentials.value(forKey: "username") as? String
|
|
76
93
|
else {
|
|
@@ -134,7 +151,6 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
134
151
|
guard let strongSelf = self else { return }
|
|
135
152
|
self?.config = nil
|
|
136
153
|
self?.recentRoleChangeRequest = nil
|
|
137
|
-
self?.recentChangeTrackStateRequest = nil
|
|
138
154
|
self?.hms?.leave({ success, error in
|
|
139
155
|
if(success){
|
|
140
156
|
resolve?("")
|
|
@@ -146,7 +162,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
146
162
|
}
|
|
147
163
|
}
|
|
148
164
|
|
|
149
|
-
func sendBroadcastMessage(_ data: NSDictionary) {
|
|
165
|
+
func sendBroadcastMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
150
166
|
guard let message = data.value(forKey: "message") as? String
|
|
151
167
|
else {
|
|
152
168
|
let error = HMSError(id: "108", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
@@ -157,11 +173,20 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
157
173
|
let type = data.value(forKey: "type") as? String ?? "chat"
|
|
158
174
|
|
|
159
175
|
DispatchQueue.main.async { [weak self] in
|
|
160
|
-
self?.hms?.sendBroadcastMessage(type: type, message: message
|
|
176
|
+
self?.hms?.sendBroadcastMessage(type: type, message: message, completion: { message, error in
|
|
177
|
+
if (error == nil) {
|
|
178
|
+
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
179
|
+
return
|
|
180
|
+
} else {
|
|
181
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
182
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
183
|
+
return
|
|
184
|
+
}
|
|
185
|
+
})
|
|
161
186
|
}
|
|
162
187
|
}
|
|
163
188
|
|
|
164
|
-
func sendGroupMessage(_ data: NSDictionary) {
|
|
189
|
+
func sendGroupMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
165
190
|
guard let message = data.value(forKey: "message") as? String,
|
|
166
191
|
let targetedRoles = data.value(forKey: "roles") as? [String]
|
|
167
192
|
else {
|
|
@@ -173,11 +198,20 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
173
198
|
let type = data.value(forKey: "type") as? String ?? "chat"
|
|
174
199
|
DispatchQueue.main.async { [weak self] in
|
|
175
200
|
let encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
|
|
176
|
-
self?.hms?.sendGroupMessage(type: type, message: message, roles: encodedTargetedRoles
|
|
201
|
+
self?.hms?.sendGroupMessage(type: type, message: message, roles: encodedTargetedRoles, completion: { message, error in
|
|
202
|
+
if (error == nil) {
|
|
203
|
+
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
204
|
+
return
|
|
205
|
+
} else {
|
|
206
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
207
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
208
|
+
return
|
|
209
|
+
}
|
|
210
|
+
})
|
|
177
211
|
}
|
|
178
212
|
}
|
|
179
213
|
|
|
180
|
-
func sendDirectMessage(_ data: NSDictionary) {
|
|
214
|
+
func sendDirectMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
181
215
|
guard let message = data.value(forKey: "message") as? String,
|
|
182
216
|
let peerId = data.value(forKey: "peerId") as? String
|
|
183
217
|
else {
|
|
@@ -188,24 +222,40 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
188
222
|
|
|
189
223
|
let type = data.value(forKey: "type") as? String ?? "chat"
|
|
190
224
|
DispatchQueue.main.async { [weak self] in
|
|
191
|
-
guard let peer = HmsHelper.
|
|
192
|
-
self?.hms?.sendDirectMessage(type: type, message: message, peer: peer
|
|
225
|
+
guard let peer = HmsHelper.getRemotePeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers) else { return }
|
|
226
|
+
self?.hms?.sendDirectMessage(type: type, message: message, peer: peer, completion: { message, error in
|
|
227
|
+
if (error == nil) {
|
|
228
|
+
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
229
|
+
return
|
|
230
|
+
} else {
|
|
231
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
232
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
233
|
+
return
|
|
234
|
+
}
|
|
235
|
+
})
|
|
193
236
|
}
|
|
194
237
|
}
|
|
195
238
|
|
|
196
|
-
func acceptRoleChange() {
|
|
239
|
+
func acceptRoleChange(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
197
240
|
|
|
198
241
|
DispatchQueue.main.async { [weak self] in
|
|
199
242
|
|
|
200
243
|
guard let request = self?.recentRoleChangeRequest else { return }
|
|
201
244
|
|
|
202
|
-
self?.hms?.accept(changeRole: request
|
|
245
|
+
self?.hms?.accept(changeRole: request, completion: { success, error in
|
|
246
|
+
if(success) {
|
|
247
|
+
resolve?(["success": true])
|
|
248
|
+
} else{
|
|
249
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
250
|
+
reject?(error?.message, error?.localizedDescription,nil)
|
|
251
|
+
}
|
|
252
|
+
})
|
|
203
253
|
|
|
204
254
|
self?.recentRoleChangeRequest = nil
|
|
205
255
|
}
|
|
206
256
|
}
|
|
207
257
|
|
|
208
|
-
func changeRole(_ data: NSDictionary) {
|
|
258
|
+
func changeRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
209
259
|
|
|
210
260
|
guard let peerId = data.value(forKey: "peerId") as? String,
|
|
211
261
|
let role = data.value(forKey: "role") as? String
|
|
@@ -218,15 +268,22 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
218
268
|
let force = data.value(forKey: "force") as? Bool ?? false
|
|
219
269
|
|
|
220
270
|
DispatchQueue.main.async { [weak self] in
|
|
221
|
-
guard let peer = HmsHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers),
|
|
271
|
+
guard let peer = HmsHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers, localPeer:self?.hms?.localPeer),
|
|
222
272
|
let role = HmsHelper.getRoleFromRoleName(role, roles: self?.hms?.roles)
|
|
223
273
|
else { return }
|
|
224
|
-
|
|
225
|
-
self?.hms?.changeRole(for: peer, to: role, force: force
|
|
274
|
+
|
|
275
|
+
self?.hms?.changeRole(for: peer, to: role, force: force, completion: { success, error in
|
|
276
|
+
if(success) {
|
|
277
|
+
resolve?(["success": true])
|
|
278
|
+
} else{
|
|
279
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
280
|
+
reject?(error?.message, error?.localizedDescription,nil)
|
|
281
|
+
}
|
|
282
|
+
})
|
|
226
283
|
}
|
|
227
284
|
}
|
|
228
285
|
|
|
229
|
-
func changeTrackState(_ data: NSDictionary) {
|
|
286
|
+
func changeTrackState(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
230
287
|
|
|
231
288
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
232
289
|
else {
|
|
@@ -242,31 +299,48 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
242
299
|
let track = HmsHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
243
300
|
else { return }
|
|
244
301
|
|
|
245
|
-
self?.hms?.changeTrackState(for: track, mute: mute
|
|
302
|
+
self?.hms?.changeTrackState(for: track, mute: mute, completion: { success, error in
|
|
303
|
+
if(success) {
|
|
304
|
+
resolve?(["success": true])
|
|
305
|
+
} else{
|
|
306
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
307
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
308
|
+
}
|
|
309
|
+
})
|
|
246
310
|
}
|
|
247
311
|
}
|
|
248
312
|
|
|
249
|
-
func
|
|
313
|
+
func changeTrackStateForRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
250
314
|
|
|
251
|
-
guard let
|
|
252
|
-
let targetedRoles = data.value(forKey: "roles") as? [String],
|
|
253
|
-
let type = data.value(forKey: "type") as? String
|
|
315
|
+
guard let mute = data.value(forKey: "mute") as? Bool
|
|
254
316
|
else {
|
|
255
317
|
let error = HMSError(id: "113", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
256
318
|
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
257
319
|
return
|
|
258
320
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
321
|
+
let source = data.value(forKey: "source") as? String
|
|
322
|
+
let targetedRoles = data.value(forKey: "roles") as? [String]
|
|
323
|
+
let type = data.value(forKey: "type") as? String
|
|
324
|
+
|
|
325
|
+
var decodeType: HMSTrackKind? = nil;
|
|
326
|
+
if( type != nil){
|
|
327
|
+
if( type == "AUDIO") {
|
|
328
|
+
decodeType = HMSTrackKind.audio
|
|
329
|
+
}else {
|
|
330
|
+
decodeType = HMSTrackKind.video
|
|
331
|
+
}
|
|
264
332
|
}
|
|
265
|
-
let mute = data.value(forKey: "mute") as? Bool ?? true
|
|
266
333
|
|
|
267
334
|
DispatchQueue.main.async { [weak self] in
|
|
268
335
|
let encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
|
|
269
|
-
self?.hms?.changeTrackState(mute: mute, for: decodeType, source: source, roles: encodedTargetedRoles
|
|
336
|
+
self?.hms?.changeTrackState(mute: mute, for: decodeType, source: source, roles: encodedTargetedRoles, completion: { success, error in
|
|
337
|
+
if(success) {
|
|
338
|
+
resolve?(["success": true])
|
|
339
|
+
} else{
|
|
340
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
341
|
+
reject?(error?.message, error?.localizedDescription,nil)
|
|
342
|
+
}
|
|
343
|
+
})
|
|
270
344
|
}
|
|
271
345
|
}
|
|
272
346
|
|
|
@@ -301,7 +375,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
301
375
|
}
|
|
302
376
|
}
|
|
303
377
|
|
|
304
|
-
func removePeer(_ data: NSDictionary) {
|
|
378
|
+
func removePeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
305
379
|
|
|
306
380
|
guard let peerId = data.value(forKey: "peerId") as? String
|
|
307
381
|
else {
|
|
@@ -315,15 +389,22 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
315
389
|
DispatchQueue.main.async { [weak self] in
|
|
316
390
|
|
|
317
391
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
318
|
-
let peer = HmsHelper.
|
|
392
|
+
let peer = HmsHelper.getRemotePeerFromPeerId(peerId, remotePeers: remotePeers)
|
|
319
393
|
else { return }
|
|
320
394
|
|
|
321
|
-
self?.hms?.removePeer(peer, reason: reason ?? "Removed from room"
|
|
395
|
+
self?.hms?.removePeer(peer, reason: reason ?? "Removed from room", completion: { success, error in
|
|
396
|
+
if(success) {
|
|
397
|
+
resolve?(["success": true])
|
|
398
|
+
} else{
|
|
399
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
400
|
+
reject?(error?.message, error?.localizedDescription,nil)
|
|
401
|
+
}
|
|
402
|
+
})
|
|
322
403
|
}
|
|
323
404
|
}
|
|
324
405
|
|
|
325
406
|
|
|
326
|
-
func endRoom(_ data: NSDictionary) {
|
|
407
|
+
func endRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
327
408
|
|
|
328
409
|
guard let lock = data.value(forKey: "lock") as? Bool,
|
|
329
410
|
let reason = data.value(forKey: "reason") as? String
|
|
@@ -334,7 +415,14 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
334
415
|
}
|
|
335
416
|
|
|
336
417
|
DispatchQueue.main.async { [weak self] in
|
|
337
|
-
self?.hms?.endRoom(lock: lock
|
|
418
|
+
self?.hms?.endRoom(lock: lock, reason: reason, completion: { success, error in
|
|
419
|
+
if(success) {
|
|
420
|
+
resolve?(["success": true])
|
|
421
|
+
} else{
|
|
422
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
423
|
+
reject?(error?.message, error?.localizedDescription,nil)
|
|
424
|
+
}
|
|
425
|
+
})
|
|
338
426
|
}
|
|
339
427
|
}
|
|
340
428
|
|
|
@@ -512,6 +600,54 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
512
600
|
})
|
|
513
601
|
}
|
|
514
602
|
|
|
603
|
+
func startHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
604
|
+
guard let meetingURLVariants = data.value(forKey: "meetingURLVariants") as? [[String: Any]]?
|
|
605
|
+
else {
|
|
606
|
+
let error = HMSError(id: "126", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
607
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
608
|
+
return
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
let hlsMeetingUrlVariant = HmsHelper.getHMSHLSMeetingURLVariants(meetingURLVariants)
|
|
612
|
+
let config = HMSHLSConfig(variants: hlsMeetingUrlVariant)
|
|
613
|
+
|
|
614
|
+
hms?.startHLSStreaming(config: config, completion: { success, error in
|
|
615
|
+
if (success) {
|
|
616
|
+
let roomData = HmsDecoder.getHmsRoom(self.hms?.room)
|
|
617
|
+
let type = self.getString(from: HMSRoomUpdate.hlsStreamingStateUpdated)
|
|
618
|
+
|
|
619
|
+
let localPeerData = HmsDecoder.getHmsLocalPeer(self.hms?.localPeer)
|
|
620
|
+
let remotePeerData = HmsDecoder.getHmsRemotePeers(self.hms?.remotePeers)
|
|
621
|
+
self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
622
|
+
resolve?(["success": success])
|
|
623
|
+
return
|
|
624
|
+
} else {
|
|
625
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id":self.id])
|
|
626
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
627
|
+
return
|
|
628
|
+
}
|
|
629
|
+
})
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
func stopHLSStreaming(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
633
|
+
hms?.stopHLSStreaming(config: nil, completion: { success, error in
|
|
634
|
+
if (success) {
|
|
635
|
+
let roomData = HmsDecoder.getHmsRoom(self.hms?.room)
|
|
636
|
+
let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
|
|
637
|
+
|
|
638
|
+
let localPeerData = HmsDecoder.getHmsLocalPeer(self.hms?.localPeer)
|
|
639
|
+
let remotePeerData = HmsDecoder.getHmsRemotePeers(self.hms?.remotePeers)
|
|
640
|
+
self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
641
|
+
resolve?(["success": success])
|
|
642
|
+
return
|
|
643
|
+
} else {
|
|
644
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id":self.id])
|
|
645
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
646
|
+
return
|
|
647
|
+
}
|
|
648
|
+
})
|
|
649
|
+
}
|
|
650
|
+
|
|
515
651
|
//TODO: to be implemented after volume is exposed for iOS
|
|
516
652
|
// func getVolume(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
517
653
|
// guard let trackId = data.value(forKey: "trackId") as? String
|
|
@@ -548,7 +684,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
548
684
|
|
|
549
685
|
let decodedRoles = HmsDecoder.getAllRoles(hms?.roles)
|
|
550
686
|
|
|
551
|
-
self.delegate?.emitEvent(ON_JOIN, ["event": ON_JOIN, "id": self.id
|
|
687
|
+
self.delegate?.emitEvent(ON_JOIN, ["event": ON_JOIN, "id": self.id , "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "roles": decodedRoles])
|
|
552
688
|
}
|
|
553
689
|
|
|
554
690
|
func onPreview(room: HMSRoom, localTracks: [HMSTrack]) {
|
|
@@ -556,7 +692,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
556
692
|
let hmsRoom = HmsDecoder.getHmsRoom(room)
|
|
557
693
|
let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
558
694
|
|
|
559
|
-
|
|
695
|
+
previewInProgress = false
|
|
696
|
+
self.delegate?.emitEvent(ON_PREVIEW, ["event": ON_PREVIEW, "id": self.id , "room": hmsRoom, "previewTracks": previewTracks, "localPeer": localPeerData])
|
|
560
697
|
}
|
|
561
698
|
|
|
562
699
|
func on(room: HMSRoom, update: HMSRoomUpdate) {
|
|
@@ -567,7 +704,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
567
704
|
let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
568
705
|
let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
569
706
|
|
|
570
|
-
self.delegate?.emitEvent(ON_ROOM_UPDATE, ["event": ON_ROOM_UPDATE, "id": self.id
|
|
707
|
+
self.delegate?.emitEvent(ON_ROOM_UPDATE, ["event": ON_ROOM_UPDATE, "id": self.id , "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
571
708
|
}
|
|
572
709
|
|
|
573
710
|
func on(peer: HMSPeer, update: HMSPeerUpdate) {
|
|
@@ -577,8 +714,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
577
714
|
|
|
578
715
|
let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
579
716
|
let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
717
|
+
let hmsPeer = HmsDecoder.getHmsPeer(peer)
|
|
580
718
|
|
|
581
|
-
self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "id": self.id
|
|
719
|
+
self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "peer": hmsPeer])
|
|
582
720
|
}
|
|
583
721
|
|
|
584
722
|
func on(track: HMSTrack, update: HMSTrackUpdate, for peer: HMSPeer) {
|
|
@@ -588,16 +726,19 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
588
726
|
|
|
589
727
|
let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
590
728
|
let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
729
|
+
let hmsPeer = HmsDecoder.getHmsPeer(peer)
|
|
730
|
+
let hmsTrack = HmsDecoder.getHmsTrack(track)
|
|
591
731
|
|
|
592
|
-
self.delegate?.emitEvent(ON_TRACK_UPDATE, ["event": ON_TRACK_UPDATE, "id": self.id
|
|
732
|
+
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])
|
|
593
733
|
}
|
|
594
734
|
|
|
595
735
|
func on(error: HMSError) {
|
|
736
|
+
if (previewInProgress) { previewInProgress = false }
|
|
596
737
|
self.delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
597
738
|
}
|
|
598
739
|
|
|
599
740
|
func on(message: HMSMessage) {
|
|
600
|
-
self.delegate?.emitEvent(ON_MESSAGE, ["event": ON_MESSAGE, "id": self.id
|
|
741
|
+
self.delegate?.emitEvent(ON_MESSAGE, ["event": ON_MESSAGE, "id": self.id , "sender": message.sender?.name ?? "", "time": message.time, "message": message.message, "type": message.type])
|
|
601
742
|
}
|
|
602
743
|
|
|
603
744
|
func on(updated speakers: [HMSSpeaker]) {
|
|
@@ -605,15 +746,15 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
605
746
|
for speaker in speakers {
|
|
606
747
|
speakerPeerIds.append(["peer": HmsDecoder.getHmsPeer(speaker.peer), "level": speaker.level, "track": HmsDecoder.getHmsTrack(speaker.track)])
|
|
607
748
|
}
|
|
608
|
-
self.delegate?.emitEvent(ON_SPEAKER, ["event": ON_SPEAKER, "id": self.id
|
|
749
|
+
self.delegate?.emitEvent(ON_SPEAKER, ["event": ON_SPEAKER, "id": self.id , "count": speakers.count, "peers" :speakerPeerIds])
|
|
609
750
|
}
|
|
610
751
|
|
|
611
752
|
func onReconnecting() {
|
|
612
|
-
self.delegate?.emitEvent(RECONNECTING, ["event": RECONNECTING, "id": self.id
|
|
753
|
+
self.delegate?.emitEvent(RECONNECTING, ["event": RECONNECTING, "id": self.id ])
|
|
613
754
|
}
|
|
614
755
|
|
|
615
756
|
func onReconnected() {
|
|
616
|
-
self.delegate?.emitEvent(RECONNECTED, ["event": RECONNECTED, "id": self.id
|
|
757
|
+
self.delegate?.emitEvent(RECONNECTED, ["event": RECONNECTED, "id": self.id ])
|
|
617
758
|
}
|
|
618
759
|
|
|
619
760
|
func on(roleChangeRequest: HMSRoleChangeRequest) {
|
|
@@ -623,7 +764,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
623
764
|
}
|
|
624
765
|
|
|
625
766
|
func on(changeTrackStateRequest: HMSChangeTrackStateRequest) {
|
|
626
|
-
|
|
767
|
+
let decodedChangeTrackStateRequest = HmsDecoder.getHmsChangeTrackStateRequest(changeTrackStateRequest, id)
|
|
768
|
+
delegate?.emitEvent("ON_CHANGE_TRACK_STATE_REQUEST", decodedChangeTrackStateRequest)
|
|
627
769
|
}
|
|
628
770
|
|
|
629
771
|
func on(removedFromRoom notification: HMSRemovedFromRoomNotification) {
|
|
@@ -705,6 +847,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
705
847
|
return "META_DATA_CHANGED"
|
|
706
848
|
case .browserRecordingStateUpdated:
|
|
707
849
|
return "BROWSER_RECORDING_STATE_UPDATED"
|
|
850
|
+
case .hlsStreamingStateUpdated:
|
|
851
|
+
return "HLS_STREAMING_STATE_UPDATED"
|
|
708
852
|
case .rtmpStreamingStateUpdated:
|
|
709
853
|
return "RTMP_STREAMING_STATE_UPDATED"
|
|
710
854
|
case.serverRecordingStateUpdated:
|
|
@@ -714,3 +858,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
714
858
|
}
|
|
715
859
|
}
|
|
716
860
|
}
|
|
861
|
+
|
|
862
|
+
//extension HmsSDK: HMSLogger {
|
|
863
|
+
// func log(_ message: String, _ level: HMSLogLevel) {
|
|
864
|
+
//
|
|
865
|
+
// }
|
|
866
|
+
//}
|
package/ios/HmsView.swift
CHANGED
|
@@ -30,7 +30,6 @@ class HmssdkDisplayView: UIView {
|
|
|
30
30
|
}()
|
|
31
31
|
|
|
32
32
|
var hmsCollection: [String: HmsSDK] = [:]
|
|
33
|
-
var localTrack: String?
|
|
34
33
|
var sinked = false
|
|
35
34
|
var sinkVideo = true
|
|
36
35
|
|
|
@@ -58,66 +57,31 @@ class HmssdkDisplayView: UIView {
|
|
|
58
57
|
|
|
59
58
|
@objc var data: NSDictionary = [:] {
|
|
60
59
|
didSet {
|
|
61
|
-
|
|
60
|
+
|
|
61
|
+
let sdkID = data.value(forKey: "id") as? String ?? "12345"
|
|
62
|
+
|
|
63
|
+
guard let hmsSDK = hmsCollection[sdkID]?.hms,
|
|
64
|
+
let trackID = data.value(forKey: "trackId") as? String,
|
|
65
|
+
let videoTrack = HMSUtilities.getVideoTrack(for: trackID, in: hmsSDK.room!),
|
|
62
66
|
let sink = data.value(forKey: "sink") as? Bool
|
|
63
|
-
else {
|
|
67
|
+
else {
|
|
68
|
+
print(#function, "Required data to setup video view not found")
|
|
69
|
+
return
|
|
70
|
+
}
|
|
64
71
|
|
|
65
72
|
sinkVideo = sink
|
|
66
|
-
|
|
73
|
+
|
|
67
74
|
let mirror = data.value(forKey: "mirror") as? Bool
|
|
68
|
-
if(mirror != nil){
|
|
75
|
+
if (mirror != nil) {
|
|
69
76
|
videoView.mirror = mirror!
|
|
70
77
|
}
|
|
71
78
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if let videoTrack: HMSVideoTrack = hmsCollection[id]?.hms?.localPeer?.videoTrack {
|
|
79
|
-
if videoTrack.trackId == trackID {
|
|
80
|
-
|
|
81
|
-
if !sinked && sinkVideo {
|
|
82
|
-
videoView.setVideoTrack(videoTrack)
|
|
83
|
-
sinked = true
|
|
84
|
-
} else if !sinkVideo {
|
|
85
|
-
videoView.setVideoTrack(nil)
|
|
86
|
-
sinked = false
|
|
87
|
-
}
|
|
88
|
-
return
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
if let remotePeers: [HMSRemotePeer] = hmsCollection[id]?.hms?.remotePeers {
|
|
93
|
-
for peer in remotePeers where peer.videoTrack?.trackId == trackID {
|
|
94
|
-
|
|
95
|
-
if !sinked && sinkVideo {
|
|
96
|
-
videoView.setVideoTrack(peer.videoTrack)
|
|
97
|
-
sinked = true
|
|
98
|
-
} else if !sinkVideo {
|
|
99
|
-
videoView.setVideoTrack(nil)
|
|
100
|
-
sinked = false
|
|
101
|
-
}
|
|
102
|
-
return
|
|
103
|
-
}
|
|
104
|
-
for peer in remotePeers {
|
|
105
|
-
let auxTracks = peer.auxiliaryTracks
|
|
106
|
-
if let auxTracksVals = auxTracks {
|
|
107
|
-
for track in auxTracksVals where track.trackId == trackID {
|
|
108
|
-
if (HmsHelper.getHmsTrackType(track.kind) == "VIDEO") {
|
|
109
|
-
if !sinked && sinkVideo {
|
|
110
|
-
videoView.setVideoTrack(track as? HMSVideoTrack)
|
|
111
|
-
sinked = true
|
|
112
|
-
} else if !sinkVideo {
|
|
113
|
-
videoView.setVideoTrack(nil)
|
|
114
|
-
sinked = false
|
|
115
|
-
}
|
|
116
|
-
return
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
79
|
+
if !sinked && sinkVideo {
|
|
80
|
+
videoView.setVideoTrack(videoTrack)
|
|
81
|
+
sinked = true
|
|
82
|
+
} else if !sinkVideo {
|
|
83
|
+
videoView.setVideoTrack(nil)
|
|
84
|
+
sinked = false
|
|
121
85
|
}
|
|
122
86
|
}
|
|
123
87
|
}
|
|
@@ -139,4 +103,8 @@ class HmssdkDisplayView: UIView {
|
|
|
139
103
|
required init?(coder: NSCoder) {
|
|
140
104
|
fatalError("init(coder:) has not been implemented")
|
|
141
105
|
}
|
|
106
|
+
|
|
107
|
+
deinit {
|
|
108
|
+
videoView.setVideoTrack(nil)
|
|
109
|
+
}
|
|
142
110
|
}
|