@100mslive/react-native-hms 1.1.0 → 1.2.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 +145 -340
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +205 -75
- package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +127 -127
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +153 -115
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +147 -17
- package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +7 -7
- package/ios/HMSDecoder.swift +205 -129
- package/ios/HMSHelper.swift +3 -3
- package/ios/HMSManager.m +3 -0
- package/ios/HMSManager.swift +22 -1
- package/ios/HMSRNSDK.swift +228 -79
- package/ios/HMSView.m +2 -0
- package/ios/HMSView.swift +35 -3
- package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/yogesh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +133 -84
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalVideoTrack.js +0 -2
- package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSMessageRecipient.js +1 -1
- package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
- package/lib/commonjs/classes/HMSNativeEventEmitter.js +106 -0
- package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -0
- package/lib/commonjs/classes/HMSPeer.js +4 -0
- package/lib/commonjs/classes/HMSPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPublishSettings.js +0 -6
- package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSRole.js +0 -6
- package/lib/commonjs/classes/HMSRole.js.map +1 -1
- package/lib/commonjs/classes/HMSRoleChangeRequest.js +3 -1
- package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +465 -137
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSSubscribeSettings.js +0 -2
- package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
- package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +133 -84
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
- package/lib/module/classes/HMSLocalVideoTrack.js +0 -2
- package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSMessageRecipient.js +1 -1
- package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
- package/lib/module/classes/HMSNativeEventEmitter.js +99 -0
- package/lib/module/classes/HMSNativeEventEmitter.js.map +1 -0
- package/lib/module/classes/HMSPeer.js +4 -0
- package/lib/module/classes/HMSPeer.js.map +1 -1
- package/lib/module/classes/HMSPublishSettings.js +0 -6
- package/lib/module/classes/HMSPublishSettings.js.map +1 -1
- package/lib/module/classes/HMSRole.js +0 -6
- package/lib/module/classes/HMSRole.js.map +1 -1
- package/lib/module/classes/HMSRoleChangeRequest.js +3 -1
- package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
- package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +466 -138
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
- package/lib/module/classes/HMSSubscribeSettings.js +0 -2
- package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +4 -4
- package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -2
- package/lib/typescript/classes/HMSEncoder.d.ts +3 -0
- package/lib/typescript/classes/HMSHLSStreamingState.d.ts +2 -2
- package/lib/typescript/classes/HMSLocalVideoTrack.d.ts +0 -2
- package/lib/typescript/classes/HMSMessageRecipient.d.ts +2 -2
- package/lib/typescript/classes/HMSNativeEventEmitter.d.ts +13 -0
- package/lib/typescript/classes/HMSPublishSettings.d.ts +8 -15
- package/lib/typescript/classes/HMSRole.d.ts +0 -6
- package/lib/typescript/classes/HMSRoleChangeRequest.d.ts +2 -2
- package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +4 -4
- package/lib/typescript/classes/HMSSDK.d.ts +2 -12
- package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -2
- package/lib/typescript/classes/HMSSubscribeSettings.d.ts +0 -2
- package/lib/typescript/index.d.ts +1 -0
- package/package.json +6 -4
- package/react-native-hms.podspec +1 -1
- package/sdk-versions.json +5 -0
- package/src/classes/HMSBrowserRecordingState.ts +4 -4
- package/src/classes/HMSChangeTrackStateRequest.ts +2 -2
- package/src/classes/HMSEncoder.ts +186 -99
- package/src/classes/HMSHLSStreamingState.ts +2 -2
- package/src/classes/HMSLocalVideoTrack.ts +0 -2
- package/src/classes/HMSMessageRecipient.ts +3 -3
- package/src/classes/HMSNativeEventEmitter.ts +86 -0
- package/src/classes/HMSPeer.ts +4 -0
- package/src/classes/HMSPublishSettings.ts +8 -18
- package/src/classes/HMSRole.ts +0 -9
- package/src/classes/HMSRoleChangeRequest.ts +5 -3
- package/src/classes/HMSRtmpStreamingState.ts +4 -4
- package/src/classes/HMSSDK.tsx +629 -269
- package/src/classes/HMSServerRecordingState.ts +2 -2
- package/src/classes/HMSSubscribeSettings.ts +1 -7
- package/src/index.ts +1 -0
package/ios/HMSDecoder.swift
CHANGED
|
@@ -2,15 +2,26 @@ import HMSSDK
|
|
|
2
2
|
import Foundation
|
|
3
3
|
|
|
4
4
|
class HMSDecoder: NSObject {
|
|
5
|
+
static private var restrictRoleData: [String: Bool] = [:]
|
|
6
|
+
|
|
7
|
+
static func setRestrictRoleData (_ roleName: String, _ value: Bool) {
|
|
8
|
+
restrictRoleData[roleName] = value
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
static func clearRestrictDataStates () {
|
|
12
|
+
restrictRoleData.removeAll()
|
|
13
|
+
}
|
|
14
|
+
|
|
5
15
|
static func getHmsRoom (_ hmsRoom: HMSRoom?) -> [String: Any] {
|
|
6
16
|
|
|
7
|
-
guard let room = hmsRoom else { return [:] }
|
|
17
|
+
guard let room = hmsRoom else { return [String: Any]() }
|
|
8
18
|
|
|
9
19
|
let id = room.roomID ?? ""
|
|
10
20
|
let sessionId = room.sessionID ?? ""
|
|
11
21
|
let name = room.name ?? ""
|
|
12
22
|
let metaData = room.metaData ?? ""
|
|
13
23
|
let count = room.peerCount ?? 0
|
|
24
|
+
// sessionStartedAt?
|
|
14
25
|
let browserRecordingState = HMSDecoder.getHMSBrowserRecordingState(hmsRoom?.browserRecordingState)
|
|
15
26
|
let rtmpStreamingState = HMSDecoder.getHMSRtmpStreamingState(hmsRoom?.rtmpStreamingState)
|
|
16
27
|
let serverRecordingState = HMSDecoder.getHMSServerRecordingState(hmsRoom?.serverRecordingState)
|
|
@@ -32,32 +43,41 @@ class HMSDecoder: NSObject {
|
|
|
32
43
|
|
|
33
44
|
static func getHmsPeer (_ hmsPeer: HMSPeer?) -> [String: Any] {
|
|
34
45
|
|
|
35
|
-
guard let peer = hmsPeer else { return [:] }
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
let
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
46
|
+
guard let peer = hmsPeer else { return [String: Any]() }
|
|
47
|
+
|
|
48
|
+
var peerDict = [String: Any]()
|
|
49
|
+
|
|
50
|
+
peerDict["peerID"] = peer.peerID
|
|
51
|
+
peerDict["name"] = peer.name
|
|
52
|
+
peerDict["isLocal"] = peer.isLocal
|
|
53
|
+
|
|
54
|
+
if let userID = peer.customerUserID {
|
|
55
|
+
peerDict["customerUserID"] = userID
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
peerDict["metadata"] = peer.metadata ?? ""
|
|
59
|
+
|
|
60
|
+
// joinedAt
|
|
61
|
+
|
|
62
|
+
peerDict["role"] = getHmsRole(peer.role)
|
|
63
|
+
|
|
64
|
+
if let quality = peer.networkQuality {
|
|
65
|
+
peerDict["networkQuality"] = getHmsNetworkQuality(quality)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if let audio = peer.audioTrack {
|
|
69
|
+
peerDict["audioTrack"] = getHmsAudioTrack(audio)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if let video = peer.videoTrack {
|
|
73
|
+
peerDict["videoTrack"] = getHmsVideoTrack(video)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if let auxTracks = peer.auxiliaryTracks, auxTracks.count > 0 {
|
|
77
|
+
peerDict["auxiliaryTracks"] = getAllTracks(auxTracks)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return peerDict
|
|
61
81
|
}
|
|
62
82
|
|
|
63
83
|
static func getAllTracks (_ tracks: [HMSTrack]) -> [[String: Any]] {
|
|
@@ -71,7 +91,7 @@ class HMSDecoder: NSObject {
|
|
|
71
91
|
|
|
72
92
|
static func getHmsTrack (_ track: HMSTrack?) -> [String: Any] {
|
|
73
93
|
|
|
74
|
-
guard let hmsTrack = track else { return [:] }
|
|
94
|
+
guard let hmsTrack = track else { return [String: Any]() }
|
|
75
95
|
|
|
76
96
|
let trackId = hmsTrack.trackId
|
|
77
97
|
let source = hmsTrack.source
|
|
@@ -84,7 +104,7 @@ class HMSDecoder: NSObject {
|
|
|
84
104
|
|
|
85
105
|
static func getHmsAudioTrack (_ hmsAudioTrack: HMSAudioTrack?) -> [String: Any] {
|
|
86
106
|
|
|
87
|
-
guard let hmsTrack = hmsAudioTrack else { return [:] }
|
|
107
|
+
guard let hmsTrack = hmsAudioTrack else { return [String: Any]() }
|
|
88
108
|
|
|
89
109
|
let trackId: String = hmsTrack.trackId
|
|
90
110
|
let source: String = hmsTrack.source
|
|
@@ -97,7 +117,7 @@ class HMSDecoder: NSObject {
|
|
|
97
117
|
|
|
98
118
|
static func getHmsVideoTrack (_ hmsVideoTrack: HMSVideoTrack?) -> [String: Any] {
|
|
99
119
|
|
|
100
|
-
guard let hmsTrack = hmsVideoTrack else { return [:] }
|
|
120
|
+
guard let hmsTrack = hmsVideoTrack else { return [String: Any]() }
|
|
101
121
|
|
|
102
122
|
let trackId = hmsTrack.trackId
|
|
103
123
|
let source = hmsTrack.source
|
|
@@ -111,38 +131,48 @@ class HMSDecoder: NSObject {
|
|
|
111
131
|
|
|
112
132
|
static func getHmsLocalPeer(_ hmsLocalPeer: HMSLocalPeer?) -> [String: Any] {
|
|
113
133
|
|
|
114
|
-
guard let peer = hmsLocalPeer else { return [:] }
|
|
134
|
+
guard let peer = hmsLocalPeer else { return [String: Any]() }
|
|
115
135
|
|
|
116
|
-
|
|
117
|
-
let name = peer.name
|
|
118
|
-
let isLocal = peer.isLocal
|
|
119
|
-
let customerUserID = peer.customerUserID ?? ""
|
|
120
|
-
let customerDescription = peer.metadata ?? ""
|
|
121
|
-
let metadata = peer.metadata ?? ""
|
|
122
|
-
let audioTrack = getHmsAudioTrack(peer.audioTrack)
|
|
123
|
-
let videoTrack = getHmsVideoTrack(peer.videoTrack)
|
|
124
|
-
let role = getHmsRole(peer.role)
|
|
125
|
-
let networkQuality = getHmsNetworkQuality(peer.networkQuality)
|
|
136
|
+
var peerDict = [String: Any]()
|
|
126
137
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
138
|
+
peerDict["peerID"] = peer.peerID
|
|
139
|
+
|
|
140
|
+
peerDict["name"] = peer.name
|
|
141
|
+
peerDict["isLocal"] = peer.isLocal
|
|
142
|
+
|
|
143
|
+
if let userID = peer.customerUserID {
|
|
144
|
+
peerDict["customerUserID"] = userID
|
|
130
145
|
}
|
|
131
146
|
|
|
132
|
-
|
|
133
|
-
|
|
147
|
+
peerDict["metadata"] = peer.metadata ?? ""
|
|
148
|
+
|
|
149
|
+
peerDict["role"] = getHmsRole(peer.role)
|
|
150
|
+
|
|
151
|
+
if let audio = peer.audioTrack {
|
|
152
|
+
peerDict["audioTrack"] = getHmsAudioTrack(audio)
|
|
134
153
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
154
|
+
if let localAudio = audio as? HMSLocalAudioTrack {
|
|
155
|
+
peerDict["localAudioTrackData"] = getHmsLocalAudioTrack(localAudio)
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if let video = peer.videoTrack {
|
|
160
|
+
peerDict["videoTrack"] = getHmsVideoTrack(video)
|
|
161
|
+
|
|
162
|
+
if let localVideo = video as? HMSLocalVideoTrack {
|
|
163
|
+
peerDict["localVideoTrackData"] = getHmsLocalVideoTrack(localVideo)
|
|
164
|
+
}
|
|
138
165
|
}
|
|
139
166
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
localVideoTrackData = getHmsLocalVideoTrack(localVideo)
|
|
167
|
+
if let quality = peer.networkQuality {
|
|
168
|
+
peerDict["networkQuality"] = getHmsNetworkQuality(quality)
|
|
143
169
|
}
|
|
144
170
|
|
|
145
|
-
|
|
171
|
+
if let auxTracks = peer.auxiliaryTracks, auxTracks.count > 0 {
|
|
172
|
+
peerDict["auxiliaryTracks"] = getAllTracks(auxTracks)
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return peerDict
|
|
146
176
|
}
|
|
147
177
|
|
|
148
178
|
static func getHmsLocalAudioTrack(_ localAudio: HMSLocalAudioTrack) -> [String: Any] {
|
|
@@ -157,7 +187,7 @@ class HMSDecoder: NSObject {
|
|
|
157
187
|
|
|
158
188
|
static func getHmsAudioTrackSettings(_ hmsAudioTrackSettings: HMSAudioTrackSettings?) -> [String: Any] {
|
|
159
189
|
|
|
160
|
-
guard let settings = hmsAudioTrackSettings else { return [:] }
|
|
190
|
+
guard let settings = hmsAudioTrackSettings else { return [String: Any]() }
|
|
161
191
|
|
|
162
192
|
// TODO: parsing not done for audioSource
|
|
163
193
|
let audioSource = settings.audioSource
|
|
@@ -168,7 +198,7 @@ class HMSDecoder: NSObject {
|
|
|
168
198
|
|
|
169
199
|
static func getHmsVideoTrackSettings(_ hmsVideoTrackSettings: HMSVideoTrackSettings?) -> [String: Any] {
|
|
170
200
|
|
|
171
|
-
guard let settings = hmsVideoTrackSettings else { return [:] }
|
|
201
|
+
guard let settings = hmsVideoTrackSettings else { return [String: Any]() }
|
|
172
202
|
|
|
173
203
|
let cameraFacing = getHmsVideoTrackCameraFacing(settings.cameraFacing)
|
|
174
204
|
let initialState = HMSHelper.getHMSTrackInitState(settings.initialMuteState)
|
|
@@ -194,7 +224,7 @@ class HMSDecoder: NSObject {
|
|
|
194
224
|
case HMSCodec.H264:
|
|
195
225
|
return "H264"
|
|
196
226
|
default:
|
|
197
|
-
return "
|
|
227
|
+
return "VP8"
|
|
198
228
|
}
|
|
199
229
|
}
|
|
200
230
|
|
|
@@ -210,13 +240,13 @@ class HMSDecoder: NSObject {
|
|
|
210
240
|
}
|
|
211
241
|
|
|
212
242
|
static func getHmsVideoResolution(_ hmsVideoResolution: HMSVideoResolution?) -> [String: Any] {
|
|
213
|
-
guard let resolution = hmsVideoResolution else { return [:] }
|
|
243
|
+
guard let resolution = hmsVideoResolution else { return [String: Any]() }
|
|
214
244
|
|
|
215
245
|
return ["width": resolution.width, "height": resolution.height]
|
|
216
246
|
}
|
|
217
247
|
|
|
218
248
|
static func getHmsRemotePeers (_ remotePeers: [HMSRemotePeer]?) -> [[String: Any]] {
|
|
219
|
-
guard let remotePeers = remotePeers else { return [[:]] }
|
|
249
|
+
guard let remotePeers = remotePeers else { return [[String: Any]()] }
|
|
220
250
|
|
|
221
251
|
var peers = [[String: Any]]()
|
|
222
252
|
|
|
@@ -227,39 +257,49 @@ class HMSDecoder: NSObject {
|
|
|
227
257
|
return peers
|
|
228
258
|
}
|
|
229
259
|
|
|
230
|
-
static func getHmsRemotePeer(_
|
|
260
|
+
static func getHmsRemotePeer(_ peer: HMSRemotePeer) -> [String: Any] {
|
|
231
261
|
|
|
232
|
-
|
|
233
|
-
let name = hmsRemotePeer.name
|
|
234
|
-
let isLocal = hmsRemotePeer.isLocal
|
|
235
|
-
let customerUserID = hmsRemotePeer.customerUserID ?? ""
|
|
236
|
-
let customerDescription = hmsRemotePeer.metadata ?? ""
|
|
237
|
-
let metadata = hmsRemotePeer.metadata ?? ""
|
|
238
|
-
let audioTrack = getHmsAudioTrack(hmsRemotePeer.audioTrack)
|
|
239
|
-
let videoTrack = getHmsVideoTrack(hmsRemotePeer.videoTrack)
|
|
240
|
-
let role = getHmsRole(hmsRemotePeer.role)
|
|
241
|
-
let networkQuality = getHmsNetworkQuality(hmsRemotePeer.networkQuality)
|
|
262
|
+
var peerDict = [String: Any]()
|
|
242
263
|
|
|
243
|
-
|
|
264
|
+
peerDict["peerID"] = peer.peerID
|
|
265
|
+
peerDict["name"] = peer.name
|
|
266
|
+
peerDict["isLocal"] = peer.isLocal
|
|
244
267
|
|
|
245
|
-
|
|
246
|
-
|
|
268
|
+
if let userID = peer.customerUserID {
|
|
269
|
+
peerDict["customerUserID"] = userID
|
|
247
270
|
}
|
|
248
271
|
|
|
249
|
-
|
|
250
|
-
|
|
272
|
+
peerDict["metadata"] = peer.metadata ?? ""
|
|
273
|
+
|
|
274
|
+
// joinedAt
|
|
275
|
+
|
|
276
|
+
peerDict["role"] = getHmsRole(peer.role)
|
|
251
277
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
remoteAudioTrackData = getHMSRemoteAudioTrack(remoteAudio)
|
|
278
|
+
if let quality = peer.networkQuality {
|
|
279
|
+
peerDict["networkQuality"] = getHmsNetworkQuality(quality)
|
|
255
280
|
}
|
|
256
281
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
282
|
+
if let audio = peer.audioTrack {
|
|
283
|
+
peerDict["audioTrack"] = getHmsAudioTrack(audio)
|
|
284
|
+
|
|
285
|
+
if let remoteAudio = audio as? HMSRemoteAudioTrack {
|
|
286
|
+
peerDict["remoteAudioTrackData"] = getHMSRemoteAudioTrack(remoteAudio)
|
|
287
|
+
}
|
|
260
288
|
}
|
|
261
289
|
|
|
262
|
-
|
|
290
|
+
if let video = peer.videoTrack {
|
|
291
|
+
peerDict["videoTrack"] = getHmsVideoTrack(video)
|
|
292
|
+
|
|
293
|
+
if let remoteVideo = video as? HMSRemoteVideoTrack {
|
|
294
|
+
peerDict["remoteVideoTrackData"] = getHMSRemoteVideoTrack(remoteVideo)
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
if let auxTracks = peer.auxiliaryTracks, auxTracks.count > 0 {
|
|
299
|
+
peerDict["auxiliaryTracks"] = getAllTracks(auxTracks)
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
return peerDict
|
|
263
303
|
}
|
|
264
304
|
|
|
265
305
|
static func getHMSRemoteAudioTrack(_ remoteAudio: HMSRemoteAudioTrack) -> [String: Any] {
|
|
@@ -304,18 +344,20 @@ class HMSDecoder: NSObject {
|
|
|
304
344
|
|
|
305
345
|
static func getHmsRole(_ hmsRole: HMSRole?) -> [String: Any] {
|
|
306
346
|
|
|
307
|
-
guard let role = hmsRole else { return [:] }
|
|
347
|
+
guard let role = hmsRole else { return [String: Any]() }
|
|
308
348
|
|
|
309
349
|
let name = role.name
|
|
350
|
+
|
|
351
|
+
if restrictRoleData[role.name] == true {
|
|
352
|
+
return ["name": name]
|
|
353
|
+
}
|
|
354
|
+
|
|
310
355
|
let permissions = getHmsPermissions(role.permissions)
|
|
311
356
|
let publishSettings = getHmsPublishSettings(role.publishSettings)
|
|
312
357
|
let subscribeSettings = getHmsSubscribeSettings(role.subscribeSettings)
|
|
313
358
|
let priority = role.priority
|
|
314
|
-
let generalPermissions = role.generalPermissions ?? [:]
|
|
315
|
-
let internalPlugins = role.internalPlugins ?? [:]
|
|
316
|
-
let externalPlugins = role.externalPlugins ?? [:]
|
|
317
359
|
|
|
318
|
-
return ["name": name, "permissions": permissions, "publishSettings": publishSettings, "subscribeSettings": subscribeSettings, "priority": priority
|
|
360
|
+
return ["name": name, "permissions": permissions, "publishSettings": publishSettings, "subscribeSettings": subscribeSettings, "priority": priority]
|
|
319
361
|
}
|
|
320
362
|
|
|
321
363
|
static func getHmsPermissions (_ permissions: HMSPermissions) -> [String: Any] {
|
|
@@ -341,41 +383,33 @@ class HMSDecoder: NSObject {
|
|
|
341
383
|
|
|
342
384
|
static func getHmsPublishSettings (_ publishSettings: HMSPublishSettings) -> [String: Any] {
|
|
343
385
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
if
|
|
351
|
-
allowed = getWriteableArray(
|
|
352
|
-
} else {
|
|
353
|
-
allowed = []
|
|
386
|
+
var dict = [String: Any]()
|
|
387
|
+
|
|
388
|
+
dict["audio"] = getHmsAudioSettings(publishSettings.audio)
|
|
389
|
+
dict["video"] = getHmsVideoSettings(publishSettings.video)
|
|
390
|
+
dict["screen"] = getHmsVideoSettings(publishSettings.screen)
|
|
391
|
+
|
|
392
|
+
if let allowed = publishSettings.allowed {
|
|
393
|
+
dict["allowed"] = getWriteableArray(allowed)
|
|
354
394
|
}
|
|
355
395
|
|
|
356
|
-
return
|
|
357
|
-
"video": video,
|
|
358
|
-
"screen": screen,
|
|
359
|
-
"videoSimulcastLayers": videoSimulcastLayers,
|
|
360
|
-
"screenSimulcastLayers": screenSimulcastLayers,
|
|
361
|
-
"allowed": allowed]
|
|
396
|
+
return dict
|
|
362
397
|
}
|
|
363
398
|
|
|
364
399
|
static func getHmsSubscribeSettings (_ subscribeSettings: HMSSubscribeSettings?) -> [String: Any] {
|
|
365
400
|
guard let settings = subscribeSettings
|
|
366
|
-
else { return [:] }
|
|
401
|
+
else { return [String: Any]() }
|
|
367
402
|
|
|
368
403
|
let maxSubsBitRate = settings.maxSubsBitRate
|
|
369
|
-
let subscribeDegradationParam = getHmsSubscribeDegradationSettings(settings.subscribeDegradation)
|
|
370
404
|
let subscribeTo = settings.subscribeToRoles
|
|
371
405
|
|
|
372
|
-
return ["maxSubsBitRate": maxSubsBitRate, "
|
|
406
|
+
return ["maxSubsBitRate": maxSubsBitRate, "subscribeTo": subscribeTo ?? []]
|
|
373
407
|
}
|
|
374
408
|
|
|
375
409
|
static func getHmsSubscribeDegradationSettings (_ hmsSubscribeDegradationParams: HMSSubscribeDegradationPolicy?) -> [String: Any] {
|
|
376
410
|
guard let params = hmsSubscribeDegradationParams
|
|
377
411
|
else {
|
|
378
|
-
return [:]
|
|
412
|
+
return [String: Any]()
|
|
379
413
|
}
|
|
380
414
|
|
|
381
415
|
let degradeGracePeriodSeconds = String(params.degradeGracePeriodSeconds ?? 0)
|
|
@@ -415,7 +449,7 @@ class HMSDecoder: NSObject {
|
|
|
415
449
|
|
|
416
450
|
static func getHmsSimulcastLayers(_ videoSimulcastLayers: HMSSimulcastSettingsPolicy?) -> [String: Any] {
|
|
417
451
|
|
|
418
|
-
guard let videoLayers = videoSimulcastLayers else { return [:] }
|
|
452
|
+
guard let videoLayers = videoSimulcastLayers else { return [String: Any]() }
|
|
419
453
|
|
|
420
454
|
let layers = getHmsSimulcastLayerSettingsPolicy(videoLayers.layers)
|
|
421
455
|
|
|
@@ -460,7 +494,7 @@ class HMSDecoder: NSObject {
|
|
|
460
494
|
return request
|
|
461
495
|
}
|
|
462
496
|
|
|
463
|
-
return [:]
|
|
497
|
+
return [String: Any]()
|
|
464
498
|
}
|
|
465
499
|
|
|
466
500
|
static func getHmsChangeTrackStateRequest(_ changeTrackStateRequest: HMSChangeTrackStateRequest, _ id: String) -> [String: Any] {
|
|
@@ -492,38 +526,60 @@ class HMSDecoder: NSObject {
|
|
|
492
526
|
}
|
|
493
527
|
|
|
494
528
|
static func getHMSBrowserRecordingState(_ data: HMSBrowserRecordingState?) -> [String: Any] {
|
|
529
|
+
|
|
495
530
|
if let recordingState = data {
|
|
496
|
-
let running = recordingState.running
|
|
497
|
-
let startedAt = recordingState.startedAt?.timeIntervalSince1970 ?? 0
|
|
498
|
-
let error = HMSDecoder.getError(recordingState.error)
|
|
499
531
|
|
|
500
|
-
|
|
532
|
+
var state = [String: Any]()
|
|
533
|
+
|
|
534
|
+
state["running"] = recordingState.running
|
|
535
|
+
|
|
536
|
+
state["startedAt"] = (recordingState.startedAt?.timeIntervalSince1970 ?? 0) * 1000
|
|
537
|
+
|
|
538
|
+
if let error = recordingState.error {
|
|
539
|
+
state["error"] = HMSDecoder.getError(error)
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
return state
|
|
501
543
|
} else {
|
|
502
|
-
return [:]
|
|
544
|
+
return [String: Any]()
|
|
503
545
|
}
|
|
504
546
|
}
|
|
505
547
|
|
|
506
548
|
static func getHMSRtmpStreamingState(_ data: HMSRTMPStreamingState?) -> [String: Any] {
|
|
507
549
|
if let streamingState = data {
|
|
508
|
-
let running = streamingState.running
|
|
509
|
-
let startedAt = streamingState.startedAt?.timeIntervalSince1970 ?? 0
|
|
510
|
-
let error = HMSDecoder.getError(streamingState.error)
|
|
511
550
|
|
|
512
|
-
|
|
551
|
+
var state = [String: Any]()
|
|
552
|
+
|
|
553
|
+
state["running"] = streamingState.running
|
|
554
|
+
|
|
555
|
+
state["startedAt"] = (streamingState.startedAt?.timeIntervalSince1970 ?? 0) * 1000
|
|
556
|
+
|
|
557
|
+
if let error = streamingState.error {
|
|
558
|
+
state["error"] = HMSDecoder.getError(error)
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
return state
|
|
513
562
|
} else {
|
|
514
|
-
return [:]
|
|
563
|
+
return [String: Any]()
|
|
515
564
|
}
|
|
516
565
|
}
|
|
517
566
|
|
|
518
567
|
static func getHMSServerRecordingState(_ data: HMSServerRecordingState?) -> [String: Any] {
|
|
519
568
|
if let recordingState = data {
|
|
520
|
-
let running = recordingState.running
|
|
521
|
-
let startedAt = recordingState.startedAt?.timeIntervalSince1970 ?? 0
|
|
522
|
-
let error = HMSDecoder.getError(recordingState.error)
|
|
523
569
|
|
|
524
|
-
|
|
570
|
+
var state = [String: Any]()
|
|
571
|
+
|
|
572
|
+
state["running"] = recordingState.running
|
|
573
|
+
|
|
574
|
+
state["startedAt"] = (recordingState.startedAt?.timeIntervalSince1970 ?? 0) * 1000
|
|
575
|
+
|
|
576
|
+
if let error = recordingState.error {
|
|
577
|
+
state["error"] = HMSDecoder.getError(error)
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
return state
|
|
525
581
|
} else {
|
|
526
|
-
return [:]
|
|
582
|
+
return [String: Any]()
|
|
527
583
|
}
|
|
528
584
|
}
|
|
529
585
|
|
|
@@ -534,7 +590,7 @@ class HMSDecoder: NSObject {
|
|
|
534
590
|
|
|
535
591
|
return ["running": running, "variants": variants]
|
|
536
592
|
} else {
|
|
537
|
-
return [:]
|
|
593
|
+
return [String: Any]()
|
|
538
594
|
}
|
|
539
595
|
}
|
|
540
596
|
|
|
@@ -547,7 +603,7 @@ class HMSDecoder: NSObject {
|
|
|
547
603
|
|
|
548
604
|
return ["running": running, "startedAt": startedAt * 1000, "singleFilePerLayer": singleFilePerLayer, "videoOnDemand": enableVOD]
|
|
549
605
|
} else {
|
|
550
|
-
return [:]
|
|
606
|
+
return [String: Any]()
|
|
551
607
|
}
|
|
552
608
|
}
|
|
553
609
|
|
|
@@ -576,8 +632,15 @@ class HMSDecoder: NSObject {
|
|
|
576
632
|
return ["roundTripTime": data.roundTripTime, "bytesSent": data.bytesSent, "bitrate": data.bitrate]
|
|
577
633
|
}
|
|
578
634
|
|
|
579
|
-
static func getLocalVideoStats(_ data: HMSLocalVideoStats) -> [String: Any] {
|
|
580
|
-
|
|
635
|
+
static func getLocalVideoStats(_ data: [HMSLocalVideoStats]) -> [[String: Any]] {
|
|
636
|
+
var dict = [[String: Any]]()
|
|
637
|
+
for stat in data {
|
|
638
|
+
dict.append(["roundTripTime": stat.roundTripTime,
|
|
639
|
+
"bytesSent": stat.bytesSent,
|
|
640
|
+
"bitrate": stat.bitrate,
|
|
641
|
+
"resolution": HMSDecoder.getHmsVideoResolution(stat.resolution), "frameRate": stat.frameRate])
|
|
642
|
+
}
|
|
643
|
+
return dict
|
|
581
644
|
}
|
|
582
645
|
|
|
583
646
|
static func getRemoteAudioStats(_ data: HMSRemoteAudioStats) -> [String: Any] {
|
|
@@ -589,11 +652,24 @@ class HMSDecoder: NSObject {
|
|
|
589
652
|
}
|
|
590
653
|
|
|
591
654
|
static func getHmsMessageRecipient(_ recipient: HMSMessageRecipient) -> [String: Any] {
|
|
592
|
-
|
|
655
|
+
|
|
656
|
+
var data = [String: Any]()
|
|
657
|
+
|
|
658
|
+
if let peer = recipient.peerRecipient {
|
|
659
|
+
data["recipientPeer"] = getHmsPeer(peer)
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
data["recipientType"] = getRecipientType(from: recipient.type)
|
|
663
|
+
|
|
664
|
+
if let roles = recipient.rolesRecipient {
|
|
665
|
+
data["recipientRoles"] = getAllRoles(roles)
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
return data
|
|
593
669
|
}
|
|
594
670
|
|
|
595
671
|
static func getHmsNetworkQuality(_ hmsNetworkQuality: HMSNetworkQuality?) -> [String: Any] {
|
|
596
|
-
guard let networkQuality = hmsNetworkQuality else { return [:] }
|
|
672
|
+
guard let networkQuality = hmsNetworkQuality else { return [String: Any]() }
|
|
597
673
|
|
|
598
674
|
return ["downlinkQuality": networkQuality.downlinkQuality]
|
|
599
675
|
}
|
package/ios/HMSHelper.swift
CHANGED
|
@@ -154,7 +154,7 @@ class HMSHelper: NSObject {
|
|
|
154
154
|
let resolution = HMSVideoResolution.init(width: 320, height: 180)
|
|
155
155
|
let maxBitrate = 512
|
|
156
156
|
let maxFrameRate = 25
|
|
157
|
-
let trackDescription = "
|
|
157
|
+
let trackDescription = ""
|
|
158
158
|
let cameraFacing = settings?.value(forKey: "cameraFacing") as? String
|
|
159
159
|
let cameraFacingEncoded = HMSHelper.getCameraFacing(cameraFacing)
|
|
160
160
|
let initialState = settings?.value(forKey: "initialState") as? String
|
|
@@ -203,7 +203,7 @@ class HMSHelper: NSObject {
|
|
|
203
203
|
do {
|
|
204
204
|
self.audioMixerSourceHashMap = audioMixerSourceMap
|
|
205
205
|
let audioMixerSource = try HMSAudioMixerSource(nodes: audioMixerSourceMap.values.map {$0})
|
|
206
|
-
return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "
|
|
206
|
+
return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "", initialMuteState: initialStateEncoded, audioSource: audioMixerSource)
|
|
207
207
|
} catch {
|
|
208
208
|
delegate?.emitEvent("ON_ERROR", ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
|
|
209
209
|
return nil
|
|
@@ -211,7 +211,7 @@ class HMSHelper: NSObject {
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "
|
|
214
|
+
return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "", initialMuteState: initialStateEncoded, audioSource: nil)
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
static func getAudioMixerSourceMap() -> [String: HMSAudioNode]? {
|
package/ios/HMSManager.m
CHANGED
|
@@ -57,4 +57,7 @@ RCT_EXTERN_METHOD(setSessionMetaData: (NSDictionary) data :(RCTPromiseResolveBlo
|
|
|
57
57
|
RCT_EXTERN_METHOD(getSessionMetaData: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
58
58
|
RCT_EXTERN_METHOD(changeRoleOfPeer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
59
59
|
RCT_EXTERN_METHOD(changeRoleOfPeersWithRoles: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
60
|
+
RCT_EXTERN_METHOD(enableEvent: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
61
|
+
RCT_EXTERN_METHOD(disableEvent: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
62
|
+
RCT_EXTERN_METHOD(restrictData: (NSDictionary) data)
|
|
60
63
|
@end
|
package/ios/HMSManager.swift
CHANGED
|
@@ -3,7 +3,7 @@ import HMSSDK
|
|
|
3
3
|
@objc(HMSManager)
|
|
4
4
|
class HMSManager: RCTEventEmitter {
|
|
5
5
|
|
|
6
|
-
var hmsCollection
|
|
6
|
+
var hmsCollection = [String: HMSRNSDK]()
|
|
7
7
|
|
|
8
8
|
let ON_PREVIEW = "ON_PREVIEW"
|
|
9
9
|
let ON_JOIN = "ON_JOIN"
|
|
@@ -401,6 +401,27 @@ class HMSManager: RCTEventEmitter {
|
|
|
401
401
|
hms?.setSessionMetaData(data, resolve, reject)
|
|
402
402
|
}
|
|
403
403
|
|
|
404
|
+
@objc
|
|
405
|
+
func enableEvent(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
406
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
407
|
+
|
|
408
|
+
hms?.enableEvent(data, resolve, reject)
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
@objc
|
|
412
|
+
func disableEvent(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
413
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
414
|
+
|
|
415
|
+
hms?.disableEvent(data, resolve, reject)
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
@objc
|
|
419
|
+
func restrictData(_ data: NSDictionary) {
|
|
420
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
421
|
+
|
|
422
|
+
hms?.restrictData(data)
|
|
423
|
+
}
|
|
424
|
+
|
|
404
425
|
// MARK: - HMS SDK Get APIs
|
|
405
426
|
@objc
|
|
406
427
|
func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|