@100mslive/react-native-hms 0.9.0 → 0.9.1

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.
Files changed (130) hide show
  1. package/README.md +10 -2
  2. package/android/.idea/gradle.xml +13 -0
  3. package/android/.idea/misc.xml +9 -0
  4. package/android/.idea/modules/android.iml +18 -0
  5. package/android/.idea/modules.xml +8 -0
  6. package/android/.idea/sonarlint/issuestore/f/0/f07866736216be0ee2aba49e392191aeae700a35 +0 -0
  7. package/android/.idea/sonarlint/issuestore/index.pb +3 -0
  8. package/android/.idea/vcs.xml +6 -0
  9. package/android/build.gradle +2 -2
  10. package/android/local.properties +8 -0
  11. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +31 -4
  12. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +16 -64
  13. package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +17 -3
  14. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +97 -32
  15. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +1 -1
  16. package/ios/HmsDecoder.swift +173 -135
  17. package/ios/HmsHelper.swift +38 -41
  18. package/ios/HmsManager.m +7 -1
  19. package/ios/HmsManager.swift +111 -68
  20. package/ios/HmsSDK.swift +335 -199
  21. package/ios/HmsView.swift +45 -31
  22. package/ios/VideoCollectionViewCell.swift +4 -4
  23. package/lib/commonjs/classes/HMSBrowserRecordingState.js +6 -0
  24. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  25. package/lib/commonjs/classes/HMSEncoder.js +164 -4
  26. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  27. package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -1
  28. package/lib/commonjs/classes/HMSLocalAudioStats.js +26 -0
  29. package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -0
  30. package/lib/commonjs/classes/HMSLocalVideoStats.js +32 -0
  31. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -0
  32. package/lib/commonjs/classes/HMSPeerUpdate.js +2 -0
  33. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  34. package/lib/commonjs/classes/HMSPermissions.js +2 -2
  35. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  36. package/lib/commonjs/classes/HMSRTCStats.js +38 -0
  37. package/lib/commonjs/classes/HMSRTCStats.js.map +1 -0
  38. package/lib/commonjs/classes/HMSRTCStatsReport.js +26 -0
  39. package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -0
  40. package/lib/commonjs/classes/HMSRemoteAudioStats.js +32 -0
  41. package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -0
  42. package/lib/commonjs/classes/HMSRemoteVideoStats.js +38 -0
  43. package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -0
  44. package/lib/commonjs/classes/HMSRoom.js +3 -0
  45. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  46. package/lib/commonjs/classes/HMSRoomUpdate.js +1 -0
  47. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  48. package/lib/commonjs/classes/HMSRtmpStreamingState.js +6 -0
  49. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  50. package/lib/commonjs/classes/HMSSDK.js +365 -111
  51. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  52. package/lib/commonjs/classes/HMSServerRecordingState.js +3 -0
  53. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  54. package/lib/commonjs/classes/HMSUpdateListenerActions.js +5 -0
  55. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  56. package/lib/commonjs/index.js +84 -0
  57. package/lib/commonjs/index.js.map +1 -1
  58. package/lib/module/classes/HMSBrowserRecordingState.js +6 -0
  59. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  60. package/lib/module/classes/HMSEncoder.js +157 -4
  61. package/lib/module/classes/HMSEncoder.js.map +1 -1
  62. package/lib/module/classes/HMSHLSVariant.js.map +1 -1
  63. package/lib/module/classes/HMSLocalAudioStats.js +17 -0
  64. package/lib/module/classes/HMSLocalAudioStats.js.map +1 -0
  65. package/lib/module/classes/HMSLocalVideoStats.js +23 -0
  66. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -0
  67. package/lib/module/classes/HMSPeerUpdate.js +2 -0
  68. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  69. package/lib/module/classes/HMSPermissions.js +2 -2
  70. package/lib/module/classes/HMSPermissions.js.map +1 -1
  71. package/lib/module/classes/HMSRTCStats.js +29 -0
  72. package/lib/module/classes/HMSRTCStats.js.map +1 -0
  73. package/lib/module/classes/HMSRTCStatsReport.js +17 -0
  74. package/lib/module/classes/HMSRTCStatsReport.js.map +1 -0
  75. package/lib/module/classes/HMSRemoteAudioStats.js +23 -0
  76. package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -0
  77. package/lib/module/classes/HMSRemoteVideoStats.js +29 -0
  78. package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -0
  79. package/lib/module/classes/HMSRoom.js +3 -0
  80. package/lib/module/classes/HMSRoom.js.map +1 -1
  81. package/lib/module/classes/HMSRoomUpdate.js +1 -0
  82. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  83. package/lib/module/classes/HMSRtmpStreamingState.js +6 -0
  84. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  85. package/lib/module/classes/HMSSDK.js +352 -111
  86. package/lib/module/classes/HMSSDK.js.map +1 -1
  87. package/lib/module/classes/HMSServerRecordingState.js +3 -0
  88. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  89. package/lib/module/classes/HMSUpdateListenerActions.js +5 -0
  90. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  91. package/lib/module/index.js +6 -0
  92. package/lib/module/index.js.map +1 -1
  93. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +4 -0
  94. package/lib/typescript/classes/HMSEncoder.d.ts +21 -0
  95. package/lib/typescript/classes/HMSHLSVariant.d.ts +8 -8
  96. package/lib/typescript/classes/HMSLocalAudioStats.d.ts +10 -0
  97. package/lib/typescript/classes/HMSLocalVideoStats.d.ts +15 -0
  98. package/lib/typescript/classes/HMSPeerUpdate.d.ts +3 -1
  99. package/lib/typescript/classes/HMSPermissions.d.ts +2 -2
  100. package/lib/typescript/classes/HMSRTCStats.d.ts +18 -0
  101. package/lib/typescript/classes/HMSRTCStatsReport.d.ts +11 -0
  102. package/lib/typescript/classes/HMSRemoteAudioStats.d.ts +14 -0
  103. package/lib/typescript/classes/HMSRemoteVideoStats.d.ts +19 -0
  104. package/lib/typescript/classes/HMSRoom.d.ts +2 -0
  105. package/lib/typescript/classes/HMSRoomUpdate.d.ts +2 -1
  106. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +4 -0
  107. package/lib/typescript/classes/HMSSDK.d.ts +16 -1
  108. package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -0
  109. package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +6 -1
  110. package/lib/typescript/index.d.ts +6 -0
  111. package/package.json +1 -1
  112. package/react-native-hms.podspec +1 -1
  113. package/src/classes/HMSBrowserRecordingState.ts +10 -1
  114. package/src/classes/HMSEncoder.ts +162 -4
  115. package/src/classes/HMSHLSVariant.ts +8 -8
  116. package/src/classes/HMSLocalAudioStats.ts +15 -0
  117. package/src/classes/HMSLocalVideoStats.ts +23 -0
  118. package/src/classes/HMSPeerUpdate.ts +2 -0
  119. package/src/classes/HMSPermissions.ts +3 -3
  120. package/src/classes/HMSRTCStats.ts +27 -0
  121. package/src/classes/HMSRTCStatsReport.ts +17 -0
  122. package/src/classes/HMSRemoteAudioStats.ts +21 -0
  123. package/src/classes/HMSRemoteVideoStats.ts +29 -0
  124. package/src/classes/HMSRoom.ts +3 -0
  125. package/src/classes/HMSRoomUpdate.ts +1 -0
  126. package/src/classes/HMSRtmpStreamingState.ts +10 -1
  127. package/src/classes/HMSSDK.tsx +233 -10
  128. package/src/classes/HMSServerRecordingState.ts +7 -1
  129. package/src/classes/HMSUpdateListenerActions.ts +5 -0
  130. package/src/index.ts +6 -0
@@ -2,58 +2,55 @@ import HMSSDK
2
2
  import Foundation
3
3
 
4
4
  class HmsHelper: NSObject {
5
-
5
+
6
6
  static func getPeerFromPeerId(_ peerID: String?, remotePeers: [HMSRemotePeer]?, localPeer: HMSLocalPeer?) -> HMSPeer? {
7
7
 
8
8
  guard let peerID = peerID, let peers = remotePeers else { return nil }
9
- if(peerID == localPeer?.peerID) {
9
+ if peerID == localPeer?.peerID {
10
10
  return localPeer
11
11
  }
12
12
  return peers.first { $0.peerID == peerID }
13
13
  }
14
14
 
15
-
16
15
  static func getRemotePeerFromPeerId(_ peerID: String?, remotePeers: [HMSRemotePeer]?) -> HMSPeer? {
17
-
16
+
18
17
  guard let peerID = peerID, let peers = remotePeers else { return nil }
19
18
 
20
19
  return peers.first { $0.peerID == peerID }
21
20
  }
22
-
23
-
21
+
24
22
  static func getRolesFromRoleNames(_ targetedRoles: [String]?, roles: [HMSRole]?) -> [HMSRole] {
25
23
 
26
24
  guard let roles = roles,
27
25
  let targetedRoles = targetedRoles
28
26
  else { return [HMSRole]() }
29
-
27
+
30
28
  return roles.filter { targetedRoles.contains($0.name) }
31
29
  }
32
-
33
-
30
+
34
31
  static func getRoleFromRoleName(_ role: String?, roles: [HMSRole]?) -> HMSRole? {
35
-
32
+
36
33
  guard let roles = roles, let roleName = role else { return nil }
37
-
34
+
38
35
  return roles.first { $0.name == roleName }
39
36
  }
40
-
37
+
41
38
  static func getLocalTrackFromTrackId(_ trackID: String?, localPeer: HMSLocalPeer?) -> HMSTrack? {
42
39
  if localPeer?.videoTrack?.trackId == trackID {
43
40
  return localPeer?.videoTrack
44
41
  }
45
-
42
+
46
43
  if localPeer?.audioTrack?.trackId == trackID {
47
44
  return localPeer?.audioTrack
48
45
  }
49
-
46
+
50
47
  for track in localPeer?.auxiliaryTracks ?? [] where track.trackId == trackID {
51
48
  return track
52
49
  }
53
-
50
+
54
51
  return nil
55
52
  }
56
-
53
+
57
54
  static func getRemoteAudioTrackFromTrackId(_ trackID: String?, _ remotePeers: [HMSRemotePeer]?) -> HMSRemoteAudioTrack? {
58
55
  for peer in remotePeers ?? [] {
59
56
  if peer.audioTrack?.trackId == trackID {
@@ -62,23 +59,23 @@ class HmsHelper: NSObject {
62
59
  }
63
60
  return nil
64
61
  }
65
-
62
+
66
63
  static func getRemoteAudioAuxiliaryTrackFromTrackId(_ trackID: String?, _ remotePeers: [HMSRemotePeer]?) -> HMSRemoteAudioTrack? {
67
64
  for peer in remotePeers ?? [] {
68
65
  if peer.audioTrack?.trackId == trackID {
69
66
  return peer.audioTrack as? HMSRemoteAudioTrack
70
67
  }
71
68
  let auxTracks = peer.auxiliaryTracks
72
-
69
+
73
70
  for track in auxTracks ?? [] {
74
- if (track.kind == HMSTrackKind.audio && track.trackId == trackID) {
71
+ if track.kind == HMSTrackKind.audio && track.trackId == trackID {
75
72
  return track as? HMSRemoteAudioTrack
76
73
  }
77
74
  }
78
75
  }
79
76
  return nil
80
77
  }
81
-
78
+
82
79
  static func getRemoteVideoTrackFromTrackId(_ trackID: String?, _ remotePeers: [HMSRemotePeer]?) -> HMSRemoteVideoTrack? {
83
80
  for peer in remotePeers ?? [] {
84
81
  if peer.videoTrack?.trackId == trackID {
@@ -87,35 +84,35 @@ class HmsHelper: NSObject {
87
84
  }
88
85
  return nil
89
86
  }
90
-
87
+
91
88
  static func getHmsTrackType(_ kind: HMSTrackKind?) -> String? {
92
- if(kind == HMSTrackKind.video){
89
+ if kind == HMSTrackKind.video {
93
90
  return "VIDEO"
94
- }else if(kind == HMSTrackKind.audio){
91
+ } else if kind == HMSTrackKind.audio {
95
92
  return "AUDIO"
96
93
  }
97
94
  return nil
98
95
  }
99
-
96
+
100
97
  static func getTrackFromTrackId(_ trackID: String?, _ remotePeers: [HMSRemotePeer]?) -> HMSTrack? {
101
-
98
+
102
99
  for peer in remotePeers ?? [] {
103
100
  if peer.videoTrack?.trackId == trackID {
104
101
  return peer.videoTrack
105
102
  }
106
-
103
+
107
104
  if peer.audioTrack?.trackId == trackID {
108
105
  return peer.audioTrack
109
106
  }
110
-
107
+
111
108
  for track in peer.auxiliaryTracks ?? [] where track.trackId == trackID {
112
109
  return track
113
110
  }
114
111
  }
115
-
112
+
116
113
  return nil
117
114
  }
118
-
115
+
119
116
  static func getHms(_ credentials: NSDictionary, _ hmsCollection: [String: HmsSDK]) -> HmsSDK? {
120
117
  guard let id = credentials.value(forKey: "id") as? String,
121
118
  let hms = hmsCollection[id]
@@ -124,11 +121,11 @@ class HmsHelper: NSObject {
124
121
  }
125
122
  return hms
126
123
  }
127
-
124
+
128
125
  static func getLocalVideoSettings(_ settings: NSDictionary?) -> HMSVideoTrackSettings? {
129
126
  guard let data = settings,
130
127
  let codec = data.value(forKey: "codec") as? String,
131
- let resolution = data.value(forKey: "resolution") as? [String : Double]?,
128
+ let resolution = data.value(forKey: "resolution") as? [String: Double]?,
132
129
  let maxBitrate = data.value(forKey: "maxBitrate") as? Int,
133
130
  let maxFrameRate = data.value(forKey: "maxFrameRate") as? Int,
134
131
  let cameraFacing = data.value(forKey: "cameraFacing") as? String,
@@ -142,7 +139,7 @@ class HmsHelper: NSObject {
142
139
  let hmsTrackSettings = HMSVideoTrackSettings(codec: codecEncoded, resolution: resolutionObj, maxBitrate: maxBitrate, maxFrameRate: maxFrameRate, cameraFacing: cameraFacingEncoded, trackDescription: trackDescription)
143
140
  return hmsTrackSettings
144
141
  }
145
-
142
+
146
143
  static func getLocalAudioSettings(_ settings: NSDictionary?) -> HMSAudioTrackSettings? {
147
144
  guard let data = settings,
148
145
  let maxBitrate = data.value(forKey: "maxBitrate") as? Int,
@@ -153,17 +150,17 @@ class HmsHelper: NSObject {
153
150
  let hmsTrackSettings = HMSAudioTrackSettings(maxBitrate: maxBitrate, trackDescription: trackDescription)
154
151
  return hmsTrackSettings
155
152
  }
156
-
157
- static func getVideoResolution(_ data: [String : Double]) -> HMSVideoResolution? {
153
+
154
+ static func getVideoResolution(_ data: [String: Double]) -> HMSVideoResolution? {
158
155
  guard let width = data["width"],
159
156
  let height = data["height"]
160
157
  else {
161
158
  return nil
162
159
  }
163
-
160
+
164
161
  return HMSVideoResolution.init(width: width, height: height)
165
162
  }
166
-
163
+
167
164
  static func getVideoCodec(_ codecString: String?) -> HMSCodec {
168
165
  switch codecString {
169
166
  case "H264":
@@ -174,7 +171,7 @@ class HmsHelper: NSObject {
174
171
  return HMSCodec.H264
175
172
  }
176
173
  }
177
-
174
+
178
175
  static func getCameraFacing(_ cameraFacing: String) -> HMSCameraFacing {
179
176
  switch cameraFacing {
180
177
  case "FRONT":
@@ -185,7 +182,7 @@ class HmsHelper: NSObject {
185
182
  return HMSCameraFacing.front
186
183
  }
187
184
  }
188
-
185
+
189
186
  static func getRtmpUrls(_ strings: [String]?) -> [URL]? {
190
187
  if let extractedStrings = strings {
191
188
  var arr: [URL] = []
@@ -200,7 +197,7 @@ class HmsHelper: NSObject {
200
197
  return nil
201
198
  }
202
199
  }
203
-
200
+
204
201
  static func getHMSHLSMeetingURLVariants(_ variants: [[String: Any]]?) -> [HMSHLSMeetingURLVariant] {
205
202
  var hlsVariants: [HMSHLSMeetingURLVariant] = []
206
203
  for variant in variants ?? [] {
@@ -211,11 +208,11 @@ class HmsHelper: NSObject {
211
208
  }
212
209
  return hlsVariants
213
210
  }
214
-
211
+
215
212
  static func getHMSHLSMeetingURLVariant(_ variant: [String: Any]) -> HMSHLSMeetingURLVariant? {
216
213
  let meetingUrl = variant["meetingUrl"] as? String
217
214
  let metadata = variant["metadata"] as? String
218
-
215
+
219
216
  if let extractedUrl = meetingUrl, let url = URL(string: extractedUrl) {
220
217
  return HMSHLSMeetingURLVariant(meetingURL: url, metadata: metadata ?? "")
221
218
  }
package/ios/HmsManager.m CHANGED
@@ -5,6 +5,8 @@
5
5
 
6
6
  RCT_EXTERN_METHOD(join: (NSDictionary) credentials)
7
7
  RCT_EXTERN_METHOD(preview: (NSDictionary) credentials)
8
+ RCT_EXTERN_METHOD(previewForRole: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
9
+ RCT_EXTERN_METHOD(cancelPreview: (NSDictionary) data)
8
10
  RCT_EXTERN_METHOD(setLocalMute: (NSDictionary) isMute)
9
11
  RCT_EXTERN_METHOD(setLocalVideoMute: (NSDictionary) isMute)
10
12
  RCT_EXTERN_METHOD(sendBroadcastMessage: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
@@ -23,11 +25,15 @@ RCT_EXTERN_METHOD(switchCamera: (NSDictionary) data)
23
25
  RCT_EXTERN_METHOD(setVolume: (NSDictionary) data)
24
26
  RCT_EXTERN_METHOD(build : (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
25
27
  RCT_EXTERN_METHOD(leave: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
26
- RCT_EXTERN_METHOD(muteAllPeersAudio: (NSDictionary) mute)
28
+ RCT_EXTERN_METHOD(setPlaybackForAllAudio: (NSDictionary) mute)
29
+ RCT_EXTERN_METHOD(remoteMuteAllAudio: (NSDictionary) data)
27
30
  RCT_EXTERN_METHOD(isPlaybackAllowed: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
28
31
  RCT_EXTERN_METHOD(changeMetadata: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
29
32
  RCT_EXTERN_METHOD(startRTMPOrRecording: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
30
33
  RCT_EXTERN_METHOD(stopRtmpAndRecording: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
31
34
  RCT_EXTERN_METHOD(startHLSStreaming: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
32
35
  RCT_EXTERN_METHOD(stopHLSStreaming: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
36
+ RCT_EXTERN_METHOD(changeName: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
37
+ RCT_EXTERN_METHOD(enableRTCStats: (NSDictionary) data)
38
+ RCT_EXTERN_METHOD(disableRTCStats: (NSDictionary) data)
33
39
  @end
@@ -1,11 +1,10 @@
1
-
2
1
  import HMSSDK
3
2
 
4
3
  @objc(HmsManager)
5
- class HmsManager: RCTEventEmitter{
6
-
4
+ class HmsManager: RCTEventEmitter {
5
+
7
6
  var hmsCollection: [String: HmsSDK] = [:]
8
-
7
+
9
8
  let ON_PREVIEW = "ON_PREVIEW"
10
9
  let ON_JOIN = "ON_JOIN"
11
10
  let ON_ROOM_UPDATE = "ON_ROOM_UPDATE"
@@ -19,134 +18,152 @@ class HmsManager: RCTEventEmitter{
19
18
  let ON_SPEAKER = "ON_SPEAKER"
20
19
  let RECONNECTING = "RECONNECTING"
21
20
  let RECONNECTED = "RECONNECTED"
22
-
21
+ let ON_RTC_STATS = "ON_RTC_STATS"
22
+ let ON_LOCAL_AUDIO_STATS = "ON_LOCAL_AUDIO_STATS"
23
+ let ON_LOCAL_VIDEO_STATS = "ON_LOCAL_VIDEO_STATS"
24
+ let ON_REMOTE_AUDIO_STATS = "ON_REMOTE_AUDIO_STATS"
25
+ let ON_REMOTE_VIDEO_STATS = "ON_REMOTE_VIDEO_STATS"
26
+
23
27
  // MARK: - Setup
24
-
28
+
25
29
  override init() {
26
30
  super.init()
27
31
  }
28
32
 
29
- // override class func requiresMainQueueSetup() -> Bool {
30
- // true
31
- // }
33
+ override class func requiresMainQueueSetup() -> Bool {
34
+ true
35
+ }
32
36
 
33
37
  override func supportedEvents() -> [String]! {
34
- return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM]
38
+ return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM, ON_RTC_STATS, ON_LOCAL_AUDIO_STATS, ON_LOCAL_VIDEO_STATS, ON_REMOTE_AUDIO_STATS, ON_REMOTE_VIDEO_STATS]
35
39
  }
36
-
37
-
40
+
38
41
  // MARK: - HMS SDK Actions
39
-
42
+
40
43
  @objc
41
44
  func build(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
42
45
  DispatchQueue.main.async { [weak self] in
43
46
  let hasItem = self?.hmsCollection.index(forKey: "12345")
44
-
47
+
45
48
  if let _ = hasItem {
46
49
  let id = UUID().uuidString
47
50
  let hms = HmsSDK(data: data, delegate: self, uid: id)
48
51
  self?.hmsCollection[id] = hms
49
-
52
+
50
53
  resolve?(id)
51
54
  } else {
52
55
  let id = "12345"
53
56
  let hms = HmsSDK(data: data, delegate: self, uid: id)
54
57
  self?.hmsCollection[id] = hms
55
-
58
+
56
59
  resolve?(id)
57
60
  }
58
61
  }
59
62
  }
60
-
63
+
61
64
  @objc
62
65
  func preview(_ credentials: NSDictionary) {
63
66
  let hms = HmsHelper.getHms(credentials, hmsCollection)
64
67
  hms?.preview(credentials)
65
68
  }
66
69
 
70
+ @objc
71
+ func previewForRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
72
+ let hms = HmsHelper.getHms(data, hmsCollection)
73
+
74
+ hms?.previewForRole(data, resolve, reject)
75
+ }
76
+
77
+ @objc
78
+ func cancelPreview(_ data: NSDictionary) {
79
+ let hms = HmsHelper.getHms(data, hmsCollection)
80
+
81
+ hms?.cancelPreview()
82
+ }
83
+
67
84
  @objc
68
85
  func join(_ credentials: NSDictionary) {
69
86
  let hms = HmsHelper.getHms(credentials, hmsCollection)
70
87
  hms?.join(credentials)
71
88
  }
72
-
89
+
73
90
  @objc
74
91
  func setLocalMute(_ data: NSDictionary) {
75
92
  let hms = HmsHelper.getHms(data, hmsCollection)
76
-
93
+
77
94
  hms?.setLocalMute(data)
78
95
  }
79
-
96
+
80
97
  @objc
81
98
  func setLocalVideoMute(_ data: NSDictionary) {
82
99
  let hms = HmsHelper.getHms(data, hmsCollection)
83
-
100
+
84
101
  hms?.setLocalVideoMute(data)
85
102
  }
86
-
103
+
87
104
  @objc
88
105
  func switchCamera(_ data: NSDictionary) {
89
106
  let hms = HmsHelper.getHms(data, hmsCollection)
90
-
107
+
91
108
  hms?.switchCamera()
92
109
  }
93
-
110
+
94
111
  @objc
95
112
  func leave(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
96
113
  let hms = HmsHelper.getHms(data, hmsCollection)
97
-
114
+
98
115
  hms?.leave(resolve, reject)
99
116
  }
100
-
117
+
101
118
  @objc
102
119
  func sendBroadcastMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
103
120
  let hms = HmsHelper.getHms(data, hmsCollection)
104
-
121
+
105
122
  hms?.sendBroadcastMessage(data, resolve, reject)
106
123
  }
107
-
124
+
108
125
  @objc
109
126
  func sendGroupMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
110
127
  let hms = HmsHelper.getHms(data, hmsCollection)
111
-
128
+
112
129
  hms?.sendGroupMessage(data, resolve, reject)
113
130
  }
114
-
131
+
115
132
  @objc
116
133
  func sendDirectMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
117
134
  let hms = HmsHelper.getHms(data, hmsCollection)
118
-
135
+
119
136
  hms?.sendDirectMessage(data, resolve, reject)
120
137
  }
121
-
138
+
122
139
  @objc
123
140
  func acceptRoleChange(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
124
141
  let hms = HmsHelper.getHms(data, hmsCollection)
125
-
142
+
126
143
  hms?.acceptRoleChange(resolve, reject)
127
144
  }
128
-
145
+
129
146
  @objc
130
147
  func changeRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
131
148
  let hms = HmsHelper.getHms(data, hmsCollection)
132
-
149
+
133
150
  hms?.changeRole(data, resolve, reject)
134
151
  }
135
-
152
+
136
153
  @objc
137
154
  func changeTrackState(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
138
155
  let hms = HmsHelper.getHms(data, hmsCollection)
139
-
156
+
140
157
  hms?.changeTrackState(data, resolve, reject)
141
158
  }
142
-
159
+
143
160
  @objc
144
161
  func changeTrackStateForRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
145
162
  let hms = HmsHelper.getHms(data, hmsCollection)
146
-
163
+
147
164
  hms?.changeTrackStateForRoles(data, resolve, reject)
148
165
  }
149
-
166
+
150
167
  @objc
151
168
  func isMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
152
169
  let hms = HmsHelper.getHms(data, hmsCollection)
@@ -155,102 +172,128 @@ class HmsManager: RCTEventEmitter{
155
172
  } else {
156
173
  reject?(nil, "NO_INSTANCE", nil)
157
174
  return
158
- }
175
+ }
159
176
  }
160
-
161
-
177
+
162
178
  @objc
163
179
  func removePeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
164
180
  let hms = HmsHelper.getHms(data, hmsCollection)
165
-
181
+
166
182
  hms?.removePeer(data, resolve, reject)
167
183
  }
168
-
169
-
184
+
170
185
  @objc
171
186
  func endRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
172
187
  let hms = HmsHelper.getHms(data, hmsCollection)
173
-
188
+
174
189
  hms?.endRoom(data, resolve, reject)
175
190
  }
176
191
 
177
192
  @objc
178
193
  func setPlaybackAllowed(_ data: NSDictionary) {
179
194
  let hms = HmsHelper.getHms(data, hmsCollection)
180
-
195
+
181
196
  hms?.setPlaybackAllowed(data)
182
197
  }
183
-
198
+
184
199
  @objc
185
200
  func isPlaybackAllowed(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
186
201
  let hms = HmsHelper.getHms(data, hmsCollection)
187
-
202
+
188
203
  hms?.isPlaybackAllowed(data, resolve, reject)
189
204
  }
190
-
205
+
191
206
  @objc
192
207
  func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
193
208
  let hms = HmsHelper.getHms(data, hmsCollection)
194
-
209
+
195
210
  hms?.getRoom(data, resolve, reject)
196
211
  }
197
-
212
+
198
213
  // MARK: - HMS SDK Delegate Callbacks
199
214
  func emitEvent(_ name: String, _ data: [String: Any]) {
200
215
  self.sendEvent(withName: name, body: data)
201
216
  }
202
-
217
+
203
218
  // MARK: Helper Functions
204
-
219
+
205
220
  @objc
206
- func muteAllPeersAudio(_ data: NSDictionary) {
221
+ func setPlaybackForAllAudio(_ data: NSDictionary) {
207
222
  let hms = HmsHelper.getHms(data, hmsCollection)
208
-
209
- hms?.muteAllPeersAudio(data)
223
+
224
+ hms?.setPlaybackForAllAudio(data)
210
225
  }
211
226
 
227
+ @objc
228
+ func remoteMuteAllAudio(_ data: NSDictionary) {
229
+ let hms = HmsHelper.getHms(data, hmsCollection)
230
+
231
+ hms?.remoteMuteAllAudio()
232
+ }
233
+
212
234
  @objc
213
235
  func changeMetadata(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
214
236
  let hms = HmsHelper.getHms(data, hmsCollection)
215
-
237
+
216
238
  hms?.changeMetadata(data, resolve, reject)
217
239
  }
218
240
 
219
241
  @objc
220
242
  func setVolume(_ data: NSDictionary) {
221
243
  let hms = HmsHelper.getHms(data, hmsCollection)
222
-
244
+
223
245
  hms?.setVolume(data)
224
246
  }
225
-
247
+
226
248
  @objc
227
249
  func startRTMPOrRecording(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
228
250
  let hms = HmsHelper.getHms(data, hmsCollection)
229
-
251
+
230
252
  hms?.startRTMPOrRecording(data, resolve, reject)
231
253
  }
232
-
254
+
233
255
  @objc
234
256
  func stopRtmpAndRecording(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
235
257
  let hms = HmsHelper.getHms(data, hmsCollection)
236
-
258
+
237
259
  hms?.stopRtmpAndRecording(resolve, reject)
238
260
  }
239
-
261
+
240
262
  @objc
241
263
  func startHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
242
264
  let hms = HmsHelper.getHms(data, hmsCollection)
243
-
265
+
244
266
  hms?.startHLSStreaming(data, resolve, reject)
245
267
  }
246
-
268
+
247
269
  @objc
248
270
  func stopHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
249
271
  let hms = HmsHelper.getHms(data, hmsCollection)
250
-
272
+
251
273
  hms?.stopHLSStreaming(resolve, reject)
252
274
  }
253
275
 
276
+ @objc
277
+ func changeName(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
278
+ let hms = HmsHelper.getHms(data, hmsCollection)
279
+
280
+ hms?.changeName(data, resolve, reject)
281
+ }
282
+
283
+ @objc
284
+ func enableRTCStats(_ data: NSDictionary) {
285
+ let hms = HmsHelper.getHms(data, hmsCollection)
286
+
287
+ hms?.enableRTCStats()
288
+ }
289
+
290
+ @objc
291
+ func disableRTCStats(_ data: NSDictionary) {
292
+ let hms = HmsHelper.getHms(data, hmsCollection)
293
+
294
+ hms?.disableRTCStats()
295
+ }
296
+
254
297
  // @objc
255
298
  // func setLocalVideoSettings(_ data: NSDictionary) {
256
299
  // let hms = HmsHelper.getHms(data, hmsCollection)