@100mslive/react-native-hms 0.9.91 → 0.9.93
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 +13 -7
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +1 -1
- package/ios/HMSDecoder.swift +21 -24
- package/ios/HMSHelper.swift +42 -8
- package/ios/HMSManager.m +11 -0
- package/ios/HMSManager.swift +87 -18
- package/ios/HMSRNSDK.swift +308 -119
- package/ios/HMSView.swift +3 -4
- package/lib/commonjs/classes/HMSAudioFilePlayerNode.js +87 -0
- package/lib/commonjs/classes/HMSAudioFilePlayerNode.js.map +1 -0
- package/lib/commonjs/classes/HMSAudioMixerSource.js +26 -0
- package/lib/commonjs/classes/HMSAudioMixerSource.js.map +1 -0
- package/lib/commonjs/classes/HMSAudioNode.js +26 -0
- package/lib/commonjs/classes/HMSAudioNode.js.map +1 -0
- package/lib/commonjs/classes/HMSAudioTrackSettings.js +6 -0
- package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +3 -2
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSException.js +7 -0
- package/lib/commonjs/classes/HMSException.js.map +1 -1
- package/lib/commonjs/classes/HMSMicNode.js +35 -0
- package/lib/commonjs/classes/HMSMicNode.js.map +1 -0
- package/lib/commonjs/classes/HMSSDK.js +22 -34
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSScreenBroadcastAudioReceiverNode.js +18 -0
- package/lib/commonjs/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -0
- package/lib/commonjs/index.js +70 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSAudioFilePlayerNode.js +75 -0
- package/lib/module/classes/HMSAudioFilePlayerNode.js.map +1 -0
- package/lib/module/classes/HMSAudioMixerSource.js +17 -0
- package/lib/module/classes/HMSAudioMixerSource.js.map +1 -0
- package/lib/module/classes/HMSAudioNode.js +17 -0
- package/lib/module/classes/HMSAudioNode.js.map +1 -0
- package/lib/module/classes/HMSAudioTrackSettings.js +6 -0
- package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +3 -2
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSException.js +7 -0
- package/lib/module/classes/HMSException.js.map +1 -1
- package/lib/module/classes/HMSMicNode.js +23 -0
- package/lib/module/classes/HMSMicNode.js.map +1 -0
- package/lib/module/classes/HMSSDK.js +21 -33
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSScreenBroadcastAudioReceiverNode.js +8 -0
- package/lib/module/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSAudioFilePlayerNode.d.ts +12 -0
- package/lib/typescript/classes/HMSAudioMixerSource.d.ts +8 -0
- package/lib/typescript/classes/HMSAudioNode.d.ts +6 -0
- package/lib/typescript/classes/HMSAudioTrackSettings.d.ts +4 -2
- package/lib/typescript/classes/HMSException.d.ts +8 -6
- package/lib/typescript/classes/HMSMicNode.d.ts +5 -0
- package/lib/typescript/classes/HMSSDK.d.ts +28 -26
- package/lib/typescript/classes/HMSScreenBroadcastAudioReceiverNode.d.ts +4 -0
- package/lib/typescript/index.d.ts +5 -0
- package/package.json +1 -1
- package/react-native-hms.podspec +2 -1
- package/src/classes/HMSAudioFilePlayerNode.ts +75 -0
- package/src/classes/HMSAudioMixerSource.ts +15 -0
- package/src/classes/HMSAudioNode.ts +12 -0
- package/src/classes/HMSAudioTrackSettings.ts +7 -4
- package/src/classes/HMSEncoder.ts +1 -0
- package/src/classes/HMSException.ts +9 -6
- package/src/classes/HMSMicNode.ts +23 -0
- package/src/classes/HMSSDK.tsx +47 -58
- package/src/classes/HMSScreenBroadcastAudioReceiverNode.ts +7 -0
- package/src/index.ts +5 -0
package/README.md
CHANGED
|
@@ -50,10 +50,10 @@ Add following lines in `Info.plist` file
|
|
|
50
50
|
```xml
|
|
51
51
|
<key>NSCameraUsageDescription</key>
|
|
52
52
|
<string>Please allow access to Camera to enable video conferencing</string>
|
|
53
|
-
<key>NSLocalNetworkUsageDescription</key>
|
|
54
|
-
<string>Please allow access to network usage to enable video conferencing</string>
|
|
55
53
|
<key>NSMicrophoneUsageDescription</key>
|
|
56
54
|
<string>Please allow access to Microphone to enable video conferencing</string>
|
|
55
|
+
<key>NSLocalNetworkUsageDescription</key>
|
|
56
|
+
<string>Please allow access to network usage to enable video conferencing</string>
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
### For Android Permissions
|
|
@@ -61,9 +61,15 @@ Add following lines in `Info.plist` file
|
|
|
61
61
|
Add following permissions in `AndroidManifest.xml`
|
|
62
62
|
|
|
63
63
|
```xml
|
|
64
|
-
<uses-
|
|
65
|
-
<uses-permission android:name="android.permission.
|
|
66
|
-
<uses-permission android:name="android.permission.
|
|
64
|
+
<uses-feature android:name="android.hardware.camera.autofocus"/>
|
|
65
|
+
<uses-permission android:name="android.permission.CAMERA"/>
|
|
66
|
+
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
|
|
67
|
+
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
|
68
|
+
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
|
69
|
+
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
|
70
|
+
<uses-permission android:name="android.permission.INTERNET"/>
|
|
71
|
+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
|
72
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
67
73
|
```
|
|
68
74
|
|
|
69
75
|
You will also need to request Camera and Record Audio permissions at runtime before you join a call or display a preview. Please follow [Android Documentation](https://developer.android.com/training/permissions/requesting#request-permission) for runtime permissions.
|
|
@@ -152,7 +158,7 @@ hmsInstance?.localPeer?.localVideoTrack()?.switchCamera();
|
|
|
152
158
|
await hmsInstance?.leave();
|
|
153
159
|
```
|
|
154
160
|
|
|
155
|
-
## Viewing the video of a peer
|
|
161
|
+
## [Viewing the video of a peer](https://www.100ms.live/docs/react-native/v2/features/render-video)
|
|
156
162
|
|
|
157
163
|
To display a video on screen the package provide a UI component named HmsView that takes the video track ID and displays the video in that component, this component requires on _width_ and _height_ in _style_ prop to set bounds of the tile that will show the video stream
|
|
158
164
|
|
|
@@ -408,7 +414,7 @@ const track: HMSTrack = remotePeer.audioTrack as HMSTrack;
|
|
|
408
414
|
hmsInstance?.setVolume(track, volume);
|
|
409
415
|
```
|
|
410
416
|
|
|
411
|
-
## [Change
|
|
417
|
+
## [Change Name](https://www.100ms.live/docs/react-native/v2/features/change-name)
|
|
412
418
|
|
|
413
419
|
```js
|
|
414
420
|
const newName: string = 'new name';
|
|
@@ -41,7 +41,7 @@ class HMSRNSDK(
|
|
|
41
41
|
private var self = this
|
|
42
42
|
|
|
43
43
|
init {
|
|
44
|
-
val trackSettings = HMSHelper.getTrackSettings(data)
|
|
44
|
+
val trackSettings = HMSHelper.getTrackSettings(data?.getMap("trackSettings"))
|
|
45
45
|
if (trackSettings == null) {
|
|
46
46
|
this.hmsSDK = HMSSDK.Builder(reactApplicationContext).build()
|
|
47
47
|
} else {
|
package/ios/HMSDecoder.swift
CHANGED
|
@@ -139,12 +139,12 @@ class HMSDecoder: NSObject {
|
|
|
139
139
|
|
|
140
140
|
return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "localAudioTrackData": localAudioTrackData, "localVideoTrackData": localVideoTrackData, "role": role, "networkQuality": networkQuality]
|
|
141
141
|
}
|
|
142
|
-
|
|
142
|
+
|
|
143
143
|
static func getHmsLocalAudioTrack(_ localAudio: HMSLocalAudioTrack) -> [String: Any] {
|
|
144
144
|
let type = HMSHelper.getHmsTrackType(localAudio.kind) ?? ""
|
|
145
145
|
return ["trackId": localAudio.trackId, "source": localAudio.source, "trackDescription": localAudio.trackDescription, "settings": getHmsAudioTrackSettings(localAudio.settings), "isMute": localAudio.isMute(), "type": type, "kind": type]
|
|
146
146
|
}
|
|
147
|
-
|
|
147
|
+
|
|
148
148
|
static func getHmsLocalVideoTrack(_ localVideo: HMSLocalVideoTrack) -> [String: Any] {
|
|
149
149
|
let type = HMSHelper.getHmsTrackType(localVideo.kind) ?? ""
|
|
150
150
|
return ["trackId": localVideo.trackId, "source": localVideo.source, "trackDescription": localVideo.trackDescription, "settings": getHmsVideoTrackSettings(localVideo.settings), "isMute": localVideo.isMute(), "type": type, "kind": type]
|
|
@@ -259,12 +259,12 @@ class HMSDecoder: NSObject {
|
|
|
259
259
|
|
|
260
260
|
return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "remoteAudioTrackData": remoteAudioTrackData, "remoteVideoTrackData": remoteVideoTrackData, "role": role, "networkQuality": networkQuality]
|
|
261
261
|
}
|
|
262
|
-
|
|
262
|
+
|
|
263
263
|
static func getHMSRemoteAudioTrack(_ remoteAudio: HMSRemoteAudioTrack) -> [String: Any] {
|
|
264
264
|
let type = HMSHelper.getHmsTrackType(remoteAudio.kind) ?? ""
|
|
265
265
|
return ["trackId": remoteAudio.trackId, "source": remoteAudio.source, "trackDescription": remoteAudio.trackDescription, "playbackAllowed": remoteAudio.isPlaybackAllowed(), "isMute": remoteAudio.isMute(), "type": type, "kind": type]
|
|
266
266
|
}
|
|
267
|
-
|
|
267
|
+
|
|
268
268
|
static func getHMSRemoteVideoTrack(_ remoteVideo: HMSRemoteVideoTrack) -> [String: Any] {
|
|
269
269
|
let type = HMSHelper.getHmsTrackType(remoteVideo.kind) ?? ""
|
|
270
270
|
return ["trackId": remoteVideo.trackId, "source": remoteVideo.source, "trackDescription": remoteVideo.trackDescription, "layer": remoteVideo.layer.rawValue, "playbackAllowed": remoteVideo.isPlaybackAllowed(), "isMute": remoteVideo.isMute(), "isDegraded": remoteVideo.isDegraded(), "type": type, "kind": type]
|
|
@@ -478,17 +478,14 @@ class HMSDecoder: NSObject {
|
|
|
478
478
|
return request
|
|
479
479
|
}
|
|
480
480
|
|
|
481
|
-
static func getError(_ errorObj:
|
|
482
|
-
if let error = errorObj {
|
|
483
|
-
let code = error.
|
|
484
|
-
let description = error.
|
|
485
|
-
let
|
|
486
|
-
let
|
|
487
|
-
let id = error.id
|
|
488
|
-
let action = error.action
|
|
489
|
-
let isTerminal = false
|
|
481
|
+
static func getError(_ errorObj: Error?) -> [String: Any]? {
|
|
482
|
+
if let error = errorObj as? HMSError {
|
|
483
|
+
let code = error.errorCode
|
|
484
|
+
let description = error.localizedDescription
|
|
485
|
+
let isTerminal = error.userInfo[HMSIsTerminalUserInfoKey] as? Bool ?? false
|
|
486
|
+
let canRetry = error.userInfo[HMSCanRetryUserInfoKey] as? Bool ?? false
|
|
490
487
|
|
|
491
|
-
return ["code": code, "description": description, "
|
|
488
|
+
return ["code": code, "description": description, "isTerminal": isTerminal, "canRetry": canRetry]
|
|
492
489
|
} else {
|
|
493
490
|
return nil
|
|
494
491
|
}
|
|
@@ -540,7 +537,7 @@ class HMSDecoder: NSObject {
|
|
|
540
537
|
return [:]
|
|
541
538
|
}
|
|
542
539
|
}
|
|
543
|
-
|
|
540
|
+
|
|
544
541
|
static func getHlsRecordingState(_ data: HMSHLSRecordingState?) -> [String: Any] {
|
|
545
542
|
if let recordingState = data {
|
|
546
543
|
let running = recordingState.running
|
|
@@ -570,37 +567,37 @@ class HMSDecoder: NSObject {
|
|
|
570
567
|
}
|
|
571
568
|
return variants
|
|
572
569
|
}
|
|
573
|
-
|
|
570
|
+
|
|
574
571
|
static func getHMSRTCStats(_ data: HMSRTCStats) -> [String: Any] {
|
|
575
572
|
return ["bitrateReceived": data.bitrateReceived, "bitrateSent": data.bitrateSent, "bytesReceived": data.bytesReceived, "bytesSent": data.bytesSent, "packetsLost": data.packetsLost, "packetsReceived": data.packetsReceived, "roundTripTime": data.roundTripTime]
|
|
576
573
|
}
|
|
577
|
-
|
|
574
|
+
|
|
578
575
|
static func getLocalAudioStats(_ data: HMSLocalAudioStats) -> [String: Any] {
|
|
579
576
|
return ["roundTripTime": data.roundTripTime, "bytesSent": data.bytesSent, "bitrate": data.bitrate]
|
|
580
577
|
}
|
|
581
|
-
|
|
578
|
+
|
|
582
579
|
static func getLocalVideoStats(_ data: HMSLocalVideoStats) -> [String: Any] {
|
|
583
580
|
return ["roundTripTime": data.roundTripTime, "bytesSent": data.bytesSent, "bitrate": data.bitrate, "resolution": HMSDecoder.getHmsVideoResolution(data.resolution), "frameRate": data.frameRate]
|
|
584
581
|
}
|
|
585
|
-
|
|
582
|
+
|
|
586
583
|
static func getRemoteAudioStats(_ data: HMSRemoteAudioStats) -> [String: Any] {
|
|
587
584
|
return ["bitrate": data.bitrate, "packetsReceived": data.packetsReceived, "packetsLost": data.packetsLost, "bytesReceived": data.bytesReceived, "jitter": data.jitter]
|
|
588
585
|
}
|
|
589
|
-
|
|
586
|
+
|
|
590
587
|
static func getRemoteVideoStats(_ data: HMSRemoteVideoStats) -> [String: Any] {
|
|
591
588
|
return ["bitrate": data.bitrate, "packetsReceived": data.packetsReceived, "packetsLost": data.packetsLost, "bytesReceived": data.bytesReceived, "jitter": data.jitter, "resolution": HMSDecoder.getHmsVideoResolution(data.resolution), "frameRate": data.frameRate]
|
|
592
589
|
}
|
|
593
|
-
|
|
590
|
+
|
|
594
591
|
static func getHmsMessageRecipient(_ recipient: HMSMessageRecipient) -> [String: Any] {
|
|
595
592
|
return ["recipientPeer": getHmsPeer(recipient.peerRecipient), "recipientRoles": getAllRoles(recipient.rolesRecipient), "recipientType": self.getRecipientType(from: recipient.type)]
|
|
596
593
|
}
|
|
597
|
-
|
|
594
|
+
|
|
598
595
|
static func getHmsNetworkQuality(_ hmsNetworkQuality: HMSNetworkQuality?) -> [String: Any] {
|
|
599
596
|
guard let networkQuality = hmsNetworkQuality else { return [:] }
|
|
600
|
-
|
|
597
|
+
|
|
601
598
|
return ["downlinkQuality": networkQuality.downlinkQuality]
|
|
602
599
|
}
|
|
603
|
-
|
|
600
|
+
|
|
604
601
|
static private func getRecipientType(from recipientType: HMSMessageRecipientType) -> String {
|
|
605
602
|
switch recipientType {
|
|
606
603
|
case .broadcast:
|
package/ios/HMSHelper.swift
CHANGED
|
@@ -2,14 +2,15 @@ import HMSSDK
|
|
|
2
2
|
import Foundation
|
|
3
3
|
|
|
4
4
|
class HMSHelper: NSObject {
|
|
5
|
+
static var audioMixerSourceHashMap: [String: HMSAudioNode]?
|
|
5
6
|
|
|
6
7
|
static func getUnavailableRequiredKey(_ data: NSDictionary, _ requiredKeys: [String]) -> String {
|
|
7
8
|
for (key) in requiredKeys {
|
|
8
9
|
let value = data.object(forKey: key)
|
|
9
|
-
if
|
|
10
|
+
if value == nil {
|
|
10
11
|
return key + "_Is_Required"
|
|
11
12
|
}
|
|
12
|
-
if
|
|
13
|
+
if value is NSNull {
|
|
13
14
|
return key + "_Is_Null"
|
|
14
15
|
}
|
|
15
16
|
}
|
|
@@ -159,15 +160,48 @@ class HMSHelper: NSObject {
|
|
|
159
160
|
return hmsTrackSettings
|
|
160
161
|
}
|
|
161
162
|
|
|
162
|
-
static func getLocalAudioSettings(_ settings: NSDictionary
|
|
163
|
+
static func getLocalAudioSettings(_ settings: NSDictionary?, _ hms: HMSSDK?, _ delegate: HMSManager?, _ id: String) -> HMSAudioTrackSettings? {
|
|
163
164
|
guard let data = settings,
|
|
164
|
-
let maxBitrate = data.value(forKey: "maxBitrate") as? Int
|
|
165
|
-
let trackDescription = data.value(forKey: "trackDescription") as? String?
|
|
165
|
+
let maxBitrate = data.value(forKey: "maxBitrate") as? Int
|
|
166
166
|
else {
|
|
167
167
|
return nil
|
|
168
168
|
}
|
|
169
|
+
let trackDescription = data.value(forKey: "trackDescription") as? String
|
|
169
170
|
let hmsTrackSettings = HMSAudioTrackSettings(maxBitrate: maxBitrate, trackDescription: trackDescription)
|
|
170
|
-
|
|
171
|
+
if #available(iOS 13.0, *) {
|
|
172
|
+
var audioMixerSourceMap = [String: HMSAudioNode]()
|
|
173
|
+
if let playerNode = settings?.value(forKey: "audioSource") as? [String] {
|
|
174
|
+
for node in playerNode {
|
|
175
|
+
if audioMixerSourceMap[node] == nil {
|
|
176
|
+
if node == "mic_node" {
|
|
177
|
+
audioMixerSourceMap["mic_node"] = HMSMicNode()
|
|
178
|
+
} else if node == "screen_broadcast_audio_receiver_node" {
|
|
179
|
+
do {
|
|
180
|
+
audioMixerSourceMap["screen_broadcast_audio_receiver_node"] = try hms?.screenBroadcastAudioReceiverNode()
|
|
181
|
+
} catch {
|
|
182
|
+
delegate?.emitEvent("ON_ERROR", ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
|
|
183
|
+
}
|
|
184
|
+
} else {
|
|
185
|
+
audioMixerSourceMap[node] = HMSAudioFilePlayerNode()
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
do {
|
|
191
|
+
self.audioMixerSourceHashMap = audioMixerSourceMap
|
|
192
|
+
let audioMixerSource = try HMSAudioMixerSource(nodes: audioMixerSourceMap.values.map {$0})
|
|
193
|
+
return HMSAudioTrackSettings(maxBitrate: maxBitrate, trackDescription: trackDescription, audioSource: audioMixerSource)
|
|
194
|
+
} catch {
|
|
195
|
+
delegate?.emitEvent("ON_ERROR", ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
|
|
196
|
+
return hmsTrackSettings
|
|
197
|
+
}
|
|
198
|
+
} else {
|
|
199
|
+
return hmsTrackSettings
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
static func getAudioMixerSourceMap() -> [String: HMSAudioNode]? {
|
|
204
|
+
return self.audioMixerSourceHashMap
|
|
171
205
|
}
|
|
172
206
|
|
|
173
207
|
static func getVideoResolution(_ data: [String: Double]) -> HMSVideoResolution? {
|
|
@@ -227,7 +261,7 @@ class HMSHelper: NSObject {
|
|
|
227
261
|
}
|
|
228
262
|
return hlsVariants
|
|
229
263
|
}
|
|
230
|
-
|
|
264
|
+
|
|
231
265
|
static func getHlsRecordingConfig(_ config: NSDictionary?) -> HMSHLSRecordingConfig? {
|
|
232
266
|
guard let hlsRecordingConfig = config
|
|
233
267
|
else {
|
|
@@ -235,7 +269,7 @@ class HMSHelper: NSObject {
|
|
|
235
269
|
}
|
|
236
270
|
let singleFilePerLayer = hlsRecordingConfig.value(forKey: "singleFilePerLayer") as? Bool
|
|
237
271
|
let videoOnDemand = hlsRecordingConfig.value(forKey: "videoOnDemand") as? Bool
|
|
238
|
-
|
|
272
|
+
|
|
239
273
|
return HMSHLSRecordingConfig(singleFilePerLayer: singleFilePerLayer ?? false, enableVOD: videoOnDemand ?? false)
|
|
240
274
|
}
|
|
241
275
|
|
package/ios/HMSManager.m
CHANGED
|
@@ -37,4 +37,15 @@ RCT_EXTERN_METHOD(changeName: (NSDictionary) data :(RCTPromiseResolveBlock) reso
|
|
|
37
37
|
RCT_EXTERN_METHOD(enableRTCStats: (NSDictionary) data)
|
|
38
38
|
RCT_EXTERN_METHOD(disableRTCStats: (NSDictionary) data)
|
|
39
39
|
RCT_EXTERN_METHOD(destroy: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
40
|
+
RCT_EXTERN_METHOD(startScreenshare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
41
|
+
RCT_EXTERN_METHOD(stopScreenshare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
42
|
+
RCT_EXTERN_METHOD(isScreenShared: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
43
|
+
RCT_EXTERN_METHOD(playAudioShare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
44
|
+
RCT_EXTERN_METHOD(setAudioShareVolume: (NSDictionary) data)
|
|
45
|
+
RCT_EXTERN_METHOD(stopAudioShare: (NSDictionary) data)
|
|
46
|
+
RCT_EXTERN_METHOD(resumeAudioShare: (NSDictionary) data)
|
|
47
|
+
RCT_EXTERN_METHOD(pauseAudioShare: (NSDictionary) data)
|
|
48
|
+
RCT_EXTERN_METHOD(audioShareIsPlaying: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
49
|
+
RCT_EXTERN_METHOD(audioShareCurrentTime: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
50
|
+
RCT_EXTERN_METHOD(audioShareDuration: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
|
|
40
51
|
@end
|
package/ios/HMSManager.swift
CHANGED
|
@@ -30,11 +30,11 @@ class HMSManager: RCTEventEmitter {
|
|
|
30
30
|
override init() {
|
|
31
31
|
super.init()
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
override class func requiresMainQueueSetup() -> Bool {
|
|
35
35
|
true
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
override func supportedEvents() -> [String]! {
|
|
39
39
|
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, ON_AUDIO_DEVICE_CHANGED]
|
|
40
40
|
}
|
|
@@ -67,18 +67,18 @@ class HMSManager: RCTEventEmitter {
|
|
|
67
67
|
let hms = HMSHelper.getHms(credentials, hmsCollection)
|
|
68
68
|
hms?.preview(credentials)
|
|
69
69
|
}
|
|
70
|
-
|
|
70
|
+
|
|
71
71
|
@objc
|
|
72
72
|
func previewForRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
73
73
|
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
74
74
|
|
|
75
75
|
hms?.previewForRole(data, resolve, reject)
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
|
|
78
78
|
@objc
|
|
79
79
|
func cancelPreview(_ data: NSDictionary) {
|
|
80
80
|
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
81
|
-
|
|
81
|
+
|
|
82
82
|
hms?.cancelPreview()
|
|
83
83
|
}
|
|
84
84
|
|
|
@@ -224,7 +224,7 @@ class HMSManager: RCTEventEmitter {
|
|
|
224
224
|
|
|
225
225
|
hms?.setPlaybackForAllAudio(data)
|
|
226
226
|
}
|
|
227
|
-
|
|
227
|
+
|
|
228
228
|
@objc
|
|
229
229
|
func remoteMuteAllAudio(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
230
230
|
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
@@ -273,25 +273,25 @@ class HMSManager: RCTEventEmitter {
|
|
|
273
273
|
|
|
274
274
|
hms?.stopHLSStreaming(resolve, reject)
|
|
275
275
|
}
|
|
276
|
-
|
|
276
|
+
|
|
277
277
|
@objc
|
|
278
278
|
func changeName(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
279
279
|
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
280
280
|
|
|
281
281
|
hms?.changeName(data, resolve, reject)
|
|
282
282
|
}
|
|
283
|
-
|
|
283
|
+
|
|
284
284
|
@objc
|
|
285
285
|
func enableRTCStats(_ data: NSDictionary) {
|
|
286
286
|
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
287
|
-
|
|
287
|
+
|
|
288
288
|
hms?.enableRTCStats()
|
|
289
289
|
}
|
|
290
|
-
|
|
290
|
+
|
|
291
291
|
@objc
|
|
292
292
|
func disableRTCStats(_ data: NSDictionary) {
|
|
293
293
|
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
294
|
-
|
|
294
|
+
|
|
295
295
|
hms?.disableRTCStats()
|
|
296
296
|
}
|
|
297
297
|
|
|
@@ -302,11 +302,80 @@ class HMSManager: RCTEventEmitter {
|
|
|
302
302
|
resolve?(["success": id + " removed"])
|
|
303
303
|
}
|
|
304
304
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
305
|
+
@objc
|
|
306
|
+
func startScreenshare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
307
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
308
|
+
|
|
309
|
+
hms?.startScreenshare(resolve, reject)
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
@objc
|
|
313
|
+
func stopScreenshare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
314
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
315
|
+
|
|
316
|
+
hms?.stopScreenshare(resolve, reject)
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
@objc
|
|
320
|
+
func isScreenShared(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
321
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
322
|
+
|
|
323
|
+
hms?.isScreenShared(resolve, reject)
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
@objc
|
|
327
|
+
func playAudioShare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
328
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
329
|
+
|
|
330
|
+
hms?.playAudioShare(data, resolve, reject)
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
@objc
|
|
334
|
+
func setAudioShareVolume(_ data: NSDictionary) {
|
|
335
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
336
|
+
|
|
337
|
+
hms?.setAudioShareVolume(data)
|
|
338
|
+
}
|
|
312
339
|
|
|
340
|
+
@objc
|
|
341
|
+
func stopAudioShare(_ data: NSDictionary) {
|
|
342
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
343
|
+
|
|
344
|
+
hms?.stopAudioShare(data)
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
@objc
|
|
348
|
+
func resumeAudioShare(_ data: NSDictionary) {
|
|
349
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
350
|
+
|
|
351
|
+
hms?.resumeAudioShare(data)
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
@objc
|
|
355
|
+
func pauseAudioShare(_ data: NSDictionary) {
|
|
356
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
357
|
+
|
|
358
|
+
hms?.pauseAudioShare(data)
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
@objc
|
|
362
|
+
func audioShareIsPlaying(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
363
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
364
|
+
|
|
365
|
+
hms?.audioShareIsPlaying(data, resolve, reject)
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
@objc
|
|
369
|
+
func audioShareCurrentTime(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
370
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
371
|
+
|
|
372
|
+
hms?.audioShareCurrentTime(data, resolve, reject)
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
@objc
|
|
376
|
+
func audioShareDuration(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
377
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
378
|
+
|
|
379
|
+
hms?.audioShareDuration(data, resolve, reject)
|
|
380
|
+
}
|
|
381
|
+
}
|