@100mslive/react-native-hms 0.8.0 → 0.8.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.
- package/README.md +37 -39
- 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 +1 -1
- package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +91 -17
- package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +106 -0
- package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +38 -3
- package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +342 -183
- package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +4 -1
- package/ios/HmsDecoder.swift +105 -18
- package/ios/HmsHelper.swift +92 -0
- package/ios/HmsManager.m +5 -1
- package/ios/HmsManager.swift +41 -6
- package/ios/HmsSDK.swift +199 -60
- package/ios/HmsView.swift +1 -1
- package/lib/commonjs/classes/HMSAudioTrackSettings.js +3 -0
- package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSBrowserRecordingState.js +23 -0
- package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -0
- package/lib/commonjs/classes/HMSCameraFacing.js +14 -0
- package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -0
- package/lib/commonjs/classes/HMSConfig.js +3 -1
- package/lib/commonjs/classes/HMSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +20 -3
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSException.js +30 -0
- package/lib/commonjs/classes/HMSException.js.map +1 -0
- package/lib/commonjs/classes/HMSHelper.js +2 -2
- package/lib/commonjs/classes/HMSHelper.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalAudioTrack.js +12 -0
- package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPeer.js +3 -0
- package/lib/commonjs/classes/HMSPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPeerUpdate.js +1 -0
- package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSPermissions.js +6 -0
- package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
- package/lib/commonjs/classes/HMSRTMPConfig.js +26 -0
- package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -0
- package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
- package/lib/commonjs/classes/HMSRoom.js +9 -0
- package/lib/commonjs/classes/HMSRoom.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpStreamingState.js +23 -0
- package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -0
- package/lib/commonjs/classes/HMSSDK.js +129 -70
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSServerRecordingState.js +23 -0
- package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -0
- package/lib/commonjs/classes/HMSTrack.js +2 -19
- package/lib/commonjs/classes/HMSTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoResolution.js +23 -0
- package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -0
- package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoTrackSettings.js +0 -3
- package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
- package/lib/commonjs/index.js +84 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSAudioTrackSettings.js +3 -0
- package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSBrowserRecordingState.js +14 -0
- package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -0
- package/lib/module/classes/HMSCameraFacing.js +7 -0
- package/lib/module/classes/HMSCameraFacing.js.map +1 -0
- package/lib/module/classes/HMSConfig.js +3 -1
- package/lib/module/classes/HMSConfig.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +19 -3
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSException.js +21 -0
- package/lib/module/classes/HMSException.js.map +1 -0
- package/lib/module/classes/HMSHelper.js +2 -2
- package/lib/module/classes/HMSHelper.js.map +1 -1
- package/lib/module/classes/HMSLocalAudioTrack.js +13 -1
- package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSLocalPeer.js.map +1 -1
- package/lib/module/classes/HMSPeer.js +3 -0
- package/lib/module/classes/HMSPeer.js.map +1 -1
- package/lib/module/classes/HMSPeerUpdate.js +1 -0
- package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/module/classes/HMSPermissions.js +6 -0
- package/lib/module/classes/HMSPermissions.js.map +1 -1
- package/lib/module/classes/HMSRTMPConfig.js +17 -0
- package/lib/module/classes/HMSRTMPConfig.js.map +1 -0
- package/lib/module/classes/HMSRemotePeer.js.map +1 -1
- package/lib/module/classes/HMSRoom.js +9 -0
- package/lib/module/classes/HMSRoom.js.map +1 -1
- package/lib/module/classes/HMSRtmpStreamingState.js +14 -0
- package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -0
- package/lib/module/classes/HMSSDK.js +130 -70
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSServerRecordingState.js +14 -0
- package/lib/module/classes/HMSServerRecordingState.js.map +1 -0
- package/lib/module/classes/HMSTrack.js +2 -17
- package/lib/module/classes/HMSTrack.js.map +1 -1
- package/lib/module/classes/HMSVideoResolution.js +14 -0
- package/lib/module/classes/HMSVideoResolution.js.map +1 -0
- package/lib/module/classes/HMSVideoSettings.js.map +1 -1
- package/lib/module/classes/HMSVideoTrackSettings.js +0 -3
- package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSAudioTrackSettings.d.ts +3 -0
- package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +9 -0
- package/lib/typescript/classes/HMSCameraFacing.d.ts +4 -0
- package/lib/typescript/classes/HMSConfig.d.ts +2 -0
- package/lib/typescript/classes/HMSEncoder.d.ts +3 -1
- package/lib/typescript/classes/HMSException.d.ts +22 -0
- package/lib/typescript/classes/HMSLocalAudioTrack.d.ts +1 -0
- package/lib/typescript/classes/HMSLocalPeer.d.ts +1 -0
- package/lib/typescript/classes/HMSPeer.d.ts +2 -0
- package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
- package/lib/typescript/classes/HMSPermissions.d.ts +4 -0
- package/lib/typescript/classes/HMSRTMPConfig.d.ts +10 -0
- package/lib/typescript/classes/HMSRemotePeer.d.ts +1 -0
- package/lib/typescript/classes/HMSRoom.d.ts +9 -0
- package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +9 -0
- package/lib/typescript/classes/HMSSDK.d.ts +10 -1
- package/lib/typescript/classes/HMSServerRecordingState.d.ts +9 -0
- package/lib/typescript/classes/HMSTrack.d.ts +1 -1
- package/lib/typescript/classes/HMSVideoResolution.d.ts +8 -0
- package/lib/typescript/classes/HMSVideoSettings.d.ts +3 -3
- package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +13 -10
- package/lib/typescript/index.d.ts +6 -0
- package/package.json +1 -1
- package/src/classes/HMSAudioTrackSettings.ts +9 -1
- package/src/classes/HMSBrowserRecordingState.ts +11 -0
- package/src/classes/HMSCameraFacing.ts +4 -0
- package/src/classes/HMSConfig.ts +3 -1
- package/src/classes/HMSEncoder.ts +19 -2
- package/src/classes/HMSException.ts +33 -0
- package/src/classes/HMSHelper.ts +2 -2
- package/src/classes/HMSLocalAudioTrack.ts +13 -1
- package/src/classes/HMSLocalPeer.ts +1 -0
- package/src/classes/HMSPeer.ts +3 -0
- package/src/classes/HMSPeerUpdate.ts +1 -0
- package/src/classes/HMSPermissions.ts +6 -0
- package/src/classes/HMSRTMPConfig.ts +15 -0
- package/src/classes/HMSRemotePeer.ts +1 -0
- package/src/classes/HMSRoom.ts +12 -0
- package/src/classes/HMSRtmpStreamingState.ts +11 -0
- package/src/classes/HMSSDK.tsx +40 -2
- package/src/classes/HMSServerRecordingState.ts +11 -0
- package/src/classes/HMSTrack.ts +2 -15
- package/src/classes/HMSVideoResolution.ts +9 -0
- package/src/classes/HMSVideoSettings.ts +3 -3
- package/src/classes/HMSVideoTrackSettings.ts +13 -10
- package/src/index.ts +6 -0
|
@@ -4,6 +4,7 @@ import com.facebook.react.bridge.*
|
|
|
4
4
|
import java.util.*
|
|
5
5
|
import kotlinx.coroutines.launch
|
|
6
6
|
import live.hms.video.error.HMSException
|
|
7
|
+
import live.hms.video.media.settings.HMSTrackSettings
|
|
7
8
|
import live.hms.video.media.tracks.*
|
|
8
9
|
import live.hms.video.sdk.*
|
|
9
10
|
import live.hms.video.sdk.models.*
|
|
@@ -11,11 +12,11 @@ import live.hms.video.sdk.models.HMSConfig
|
|
|
11
12
|
import live.hms.video.sdk.models.enums.HMSPeerUpdate
|
|
12
13
|
import live.hms.video.sdk.models.enums.HMSRoomUpdate
|
|
13
14
|
import live.hms.video.sdk.models.enums.HMSTrackUpdate
|
|
14
|
-
import live.hms.video.sdk.models.role.HMSRole
|
|
15
15
|
import live.hms.video.sdk.models.trackchangerequest.HMSChangeTrackStateRequest
|
|
16
16
|
import live.hms.video.utils.HMSCoroutineScope
|
|
17
17
|
|
|
18
18
|
class HmsSDK(
|
|
19
|
+
data: ReadableMap?,
|
|
19
20
|
HmsDelegate: HmsModule,
|
|
20
21
|
sdkId: String,
|
|
21
22
|
reactApplicationContext: ReactApplicationContext
|
|
@@ -25,9 +26,40 @@ class HmsSDK(
|
|
|
25
26
|
private var changeTrackStateRequest: HMSChangeTrackStateRequest? = null
|
|
26
27
|
val delegate: HmsModule = HmsDelegate
|
|
27
28
|
val id: String = sdkId
|
|
29
|
+
val self = this
|
|
28
30
|
|
|
29
31
|
init {
|
|
30
|
-
|
|
32
|
+
val videoSettings = HmsHelper.getVideoTrackSettings(data?.getMap("video"))
|
|
33
|
+
val audioSettings = HmsHelper.getAudioTrackSettings(data?.getMap("audio"))
|
|
34
|
+
|
|
35
|
+
val trackSettingsBuilder = HMSTrackSettings.Builder()
|
|
36
|
+
val trackSettings = trackSettingsBuilder.audio(audioSettings).video(videoSettings).build()
|
|
37
|
+
|
|
38
|
+
this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setTrackSettings(trackSettings).build()
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
fun emitRequiredKeysError() {
|
|
42
|
+
val data: WritableMap = Arguments.createMap()
|
|
43
|
+
val hmsError =
|
|
44
|
+
HMSException(
|
|
45
|
+
102,
|
|
46
|
+
"NOT_FOUND",
|
|
47
|
+
"SEND_ALL_REQUIRED_KEYS",
|
|
48
|
+
"REQUIRED_KEYS_NOT_FOUND",
|
|
49
|
+
"REQUIRED_KEYS_NOT_FOUND"
|
|
50
|
+
)
|
|
51
|
+
data.putString("event", "ON_ERROR")
|
|
52
|
+
data.putString("id", id)
|
|
53
|
+
data.putMap("error", HmsDecoder.getError(hmsError))
|
|
54
|
+
delegate.emitEvent("ON_ERROR", data)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
fun emitHMSError(error: HMSException) {
|
|
58
|
+
val data: WritableMap = Arguments.createMap()
|
|
59
|
+
data.putString("event", "ON_ERROR")
|
|
60
|
+
data.putString("id", id)
|
|
61
|
+
data.putMap("error", HmsDecoder.getError(error))
|
|
62
|
+
delegate.emitEvent("ON_ERROR", data)
|
|
31
63
|
}
|
|
32
64
|
|
|
33
65
|
fun preview(credentials: ReadableMap) {
|
|
@@ -40,15 +72,42 @@ class HmsSDK(
|
|
|
40
72
|
var config =
|
|
41
73
|
HMSConfig(
|
|
42
74
|
credentials.getString("username") as String,
|
|
43
|
-
credentials.getString("authToken") as String
|
|
75
|
+
credentials.getString("authToken") as String,
|
|
44
76
|
)
|
|
45
77
|
|
|
46
|
-
if (HmsHelper.areAllRequiredKeysAvailable(
|
|
78
|
+
if (HmsHelper.areAllRequiredKeysAvailable(
|
|
79
|
+
credentials,
|
|
80
|
+
arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
|
|
81
|
+
)
|
|
82
|
+
) {
|
|
83
|
+
config =
|
|
84
|
+
HMSConfig(
|
|
85
|
+
credentials.getString("username") as String,
|
|
86
|
+
credentials.getString("authToken") as String,
|
|
87
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
88
|
+
metadata = credentials.getString("metadata") as String,
|
|
89
|
+
)
|
|
90
|
+
} else if (HmsHelper.areAllRequiredKeysAvailable(
|
|
91
|
+
credentials,
|
|
92
|
+
arrayOf(Pair("endpoint", "String"))
|
|
93
|
+
)
|
|
94
|
+
) {
|
|
95
|
+
config =
|
|
96
|
+
HMSConfig(
|
|
97
|
+
credentials.getString("username") as String,
|
|
98
|
+
credentials.getString("authToken") as String,
|
|
99
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
100
|
+
)
|
|
101
|
+
} else if (HmsHelper.areAllRequiredKeysAvailable(
|
|
102
|
+
credentials,
|
|
103
|
+
arrayOf(Pair("metadata", "String"))
|
|
104
|
+
)
|
|
105
|
+
) {
|
|
47
106
|
config =
|
|
48
107
|
HMSConfig(
|
|
49
108
|
credentials.getString("username") as String,
|
|
50
109
|
credentials.getString("authToken") as String,
|
|
51
|
-
|
|
110
|
+
metadata = credentials.getString("metadata") as String,
|
|
52
111
|
)
|
|
53
112
|
}
|
|
54
113
|
|
|
@@ -56,7 +115,7 @@ class HmsSDK(
|
|
|
56
115
|
config,
|
|
57
116
|
object : HMSPreviewListener {
|
|
58
117
|
override fun onError(error: HMSException) {
|
|
59
|
-
|
|
118
|
+
self.emitHMSError(error)
|
|
60
119
|
}
|
|
61
120
|
|
|
62
121
|
override fun onPreview(room: HMSRoom, localTracks: Array<HMSTrack>) {
|
|
@@ -74,18 +133,7 @@ class HmsSDK(
|
|
|
74
133
|
}
|
|
75
134
|
)
|
|
76
135
|
} else {
|
|
77
|
-
|
|
78
|
-
"ON_ERROR",
|
|
79
|
-
HmsDecoder.getError(
|
|
80
|
-
HMSException(
|
|
81
|
-
102,
|
|
82
|
-
"NOT_FOUND",
|
|
83
|
-
"SEND_ALL_REQUIRED_KEYS",
|
|
84
|
-
"REQUIRED_KEYS_NOT_FOUND",
|
|
85
|
-
"REQUIRED_KEYS_NOT_FOUND"
|
|
86
|
-
)
|
|
87
|
-
)
|
|
88
|
-
)
|
|
136
|
+
self.emitRequiredKeysError()
|
|
89
137
|
}
|
|
90
138
|
}
|
|
91
139
|
|
|
@@ -102,12 +150,39 @@ class HmsSDK(
|
|
|
102
150
|
credentials.getString("authToken") as String
|
|
103
151
|
)
|
|
104
152
|
|
|
105
|
-
if (HmsHelper.areAllRequiredKeysAvailable(
|
|
153
|
+
if (HmsHelper.areAllRequiredKeysAvailable(
|
|
154
|
+
credentials,
|
|
155
|
+
arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
|
|
156
|
+
)
|
|
157
|
+
) {
|
|
158
|
+
config =
|
|
159
|
+
HMSConfig(
|
|
160
|
+
credentials.getString("username") as String,
|
|
161
|
+
credentials.getString("authToken") as String,
|
|
162
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
163
|
+
metadata = credentials.getString("metadata") as String,
|
|
164
|
+
)
|
|
165
|
+
} else if (HmsHelper.areAllRequiredKeysAvailable(
|
|
166
|
+
credentials,
|
|
167
|
+
arrayOf(Pair("endpoint", "String"))
|
|
168
|
+
)
|
|
169
|
+
) {
|
|
170
|
+
config =
|
|
171
|
+
HMSConfig(
|
|
172
|
+
credentials.getString("username") as String,
|
|
173
|
+
credentials.getString("authToken") as String,
|
|
174
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
175
|
+
)
|
|
176
|
+
} else if (HmsHelper.areAllRequiredKeysAvailable(
|
|
177
|
+
credentials,
|
|
178
|
+
arrayOf(Pair("metadata", "String"))
|
|
179
|
+
)
|
|
180
|
+
) {
|
|
106
181
|
config =
|
|
107
182
|
HMSConfig(
|
|
108
183
|
credentials.getString("username") as String,
|
|
109
184
|
credentials.getString("authToken") as String,
|
|
110
|
-
|
|
185
|
+
metadata = credentials.getString("metadata") as String,
|
|
111
186
|
)
|
|
112
187
|
}
|
|
113
188
|
|
|
@@ -130,7 +205,8 @@ class HmsSDK(
|
|
|
130
205
|
super.onRemovedFromRoom(notification)
|
|
131
206
|
|
|
132
207
|
val data: WritableMap = Arguments.createMap()
|
|
133
|
-
val requestedBy =
|
|
208
|
+
val requestedBy =
|
|
209
|
+
HmsDecoder.getHmsRemotePeer(notification.peerWhoRemoved as HMSRemotePeer?)
|
|
134
210
|
val roomEnded = notification.roomWasEnded
|
|
135
211
|
val reason = notification.reason
|
|
136
212
|
|
|
@@ -143,7 +219,7 @@ class HmsSDK(
|
|
|
143
219
|
}
|
|
144
220
|
|
|
145
221
|
override fun onError(error: HMSException) {
|
|
146
|
-
|
|
222
|
+
self.emitHMSError(error)
|
|
147
223
|
}
|
|
148
224
|
|
|
149
225
|
override fun onJoin(room: HMSRoom) {
|
|
@@ -163,7 +239,6 @@ class HmsSDK(
|
|
|
163
239
|
}
|
|
164
240
|
|
|
165
241
|
override fun onPeerUpdate(type: HMSPeerUpdate, hmsPeer: HMSPeer) {
|
|
166
|
-
|
|
167
242
|
val type = type.name
|
|
168
243
|
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
169
244
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
@@ -246,11 +321,7 @@ class HmsSDK(
|
|
|
246
321
|
}
|
|
247
322
|
)
|
|
248
323
|
} catch (e: HMSException) {
|
|
249
|
-
|
|
250
|
-
error.putString("message", e.localizedMessage)
|
|
251
|
-
error.putInt("code", e.code)
|
|
252
|
-
error.putString("id", id)
|
|
253
|
-
delegate.emitEvent("ON_ERROR", error)
|
|
324
|
+
self.emitHMSError(e)
|
|
254
325
|
}
|
|
255
326
|
|
|
256
327
|
hmsSDK?.addAudioObserver(
|
|
@@ -276,24 +347,26 @@ class HmsSDK(
|
|
|
276
347
|
)
|
|
277
348
|
}
|
|
278
349
|
} else {
|
|
279
|
-
|
|
280
|
-
"ON_ERROR",
|
|
281
|
-
HmsDecoder.getError(
|
|
282
|
-
HMSException(
|
|
283
|
-
102,
|
|
284
|
-
"NOT_FOUND",
|
|
285
|
-
"SEND_ALL_REQUIRED_KEYS",
|
|
286
|
-
"REQUIRED_KEYS_NOT_FOUND",
|
|
287
|
-
"REQUIRED_KEYS_NOT_FOUND"
|
|
288
|
-
)
|
|
289
|
-
)
|
|
290
|
-
)
|
|
350
|
+
self.emitRequiredKeysError()
|
|
291
351
|
}
|
|
292
352
|
}
|
|
293
353
|
|
|
294
354
|
fun setLocalMute(data: ReadableMap) {
|
|
295
355
|
val isMute = data.getBoolean("isMute")
|
|
296
356
|
hmsSDK?.getLocalPeer()?.audioTrack?.setMute(isMute)
|
|
357
|
+
val type = if (isMute) "TRACK_MUTED" else "TRACK_UNMUTED"
|
|
358
|
+
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
359
|
+
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
360
|
+
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
361
|
+
|
|
362
|
+
val data: WritableMap = Arguments.createMap()
|
|
363
|
+
|
|
364
|
+
data.putMap("room", roomData)
|
|
365
|
+
data.putString("type", type)
|
|
366
|
+
data.putMap("localPeer", localPeerData)
|
|
367
|
+
data.putArray("remotePeers", remotePeerData)
|
|
368
|
+
data.putString("id", id)
|
|
369
|
+
delegate.emitEvent("ON_TRACK_UPDATE", data)
|
|
297
370
|
}
|
|
298
371
|
|
|
299
372
|
fun setLocalVideoMute(data: ReadableMap) {
|
|
@@ -308,15 +381,18 @@ class HmsSDK(
|
|
|
308
381
|
}
|
|
309
382
|
|
|
310
383
|
fun leave(callback: Promise?) {
|
|
311
|
-
hmsSDK?.leave(
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
384
|
+
hmsSDK?.leave(
|
|
385
|
+
object : HMSActionResultListener {
|
|
386
|
+
override fun onSuccess() {
|
|
387
|
+
callback?.resolve("")
|
|
388
|
+
}
|
|
315
389
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
390
|
+
override fun onError(error: HMSException) {
|
|
391
|
+
callback?.reject("101", "NOT_FOUND")
|
|
392
|
+
self.emitHMSError(error)
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
)
|
|
320
396
|
}
|
|
321
397
|
|
|
322
398
|
fun sendBroadcastMessage(data: ReadableMap) {
|
|
@@ -331,23 +407,14 @@ class HmsSDK(
|
|
|
331
407
|
data.getString("message") as String,
|
|
332
408
|
type as String,
|
|
333
409
|
object : HMSMessageResultListener {
|
|
334
|
-
override fun onError(error: HMSException) {
|
|
410
|
+
override fun onError(error: HMSException) {
|
|
411
|
+
self.emitHMSError(error)
|
|
412
|
+
}
|
|
335
413
|
override fun onSuccess(hmsMessage: HMSMessage) {}
|
|
336
414
|
}
|
|
337
415
|
)
|
|
338
416
|
} else {
|
|
339
|
-
|
|
340
|
-
"ON_ERROR",
|
|
341
|
-
HmsDecoder.getError(
|
|
342
|
-
HMSException(
|
|
343
|
-
102,
|
|
344
|
-
"NOT_FOUND",
|
|
345
|
-
"SEND_ALL_REQUIRED_KEYS",
|
|
346
|
-
"REQUIRED_KEYS_NOT_FOUND",
|
|
347
|
-
"REQUIRED_KEYS_NOT_FOUND"
|
|
348
|
-
)
|
|
349
|
-
)
|
|
350
|
-
)
|
|
417
|
+
self.emitRequiredKeysError()
|
|
351
418
|
}
|
|
352
419
|
}
|
|
353
420
|
|
|
@@ -373,24 +440,15 @@ class HmsSDK(
|
|
|
373
440
|
type as String,
|
|
374
441
|
encodedTargetedRoles,
|
|
375
442
|
object : HMSMessageResultListener {
|
|
376
|
-
override fun onError(error: HMSException) {
|
|
443
|
+
override fun onError(error: HMSException) {
|
|
444
|
+
self.emitHMSError(error)
|
|
445
|
+
}
|
|
377
446
|
override fun onSuccess(hmsMessage: HMSMessage) {}
|
|
378
447
|
}
|
|
379
448
|
)
|
|
380
449
|
}
|
|
381
450
|
} else {
|
|
382
|
-
|
|
383
|
-
"ON_ERROR",
|
|
384
|
-
HmsDecoder.getError(
|
|
385
|
-
HMSException(
|
|
386
|
-
102,
|
|
387
|
-
"NOT_FOUND",
|
|
388
|
-
"SEND_ALL_REQUIRED_KEYS",
|
|
389
|
-
"REQUIRED_KEYS_NOT_FOUND",
|
|
390
|
-
"REQUIRED_KEYS_NOT_FOUND"
|
|
391
|
-
)
|
|
392
|
-
)
|
|
393
|
-
)
|
|
451
|
+
self.emitRequiredKeysError()
|
|
394
452
|
}
|
|
395
453
|
}
|
|
396
454
|
|
|
@@ -415,24 +473,15 @@ class HmsSDK(
|
|
|
415
473
|
type as String,
|
|
416
474
|
peer,
|
|
417
475
|
object : HMSMessageResultListener {
|
|
418
|
-
override fun onError(error: HMSException) {
|
|
476
|
+
override fun onError(error: HMSException) {
|
|
477
|
+
self.emitHMSError(error)
|
|
478
|
+
}
|
|
419
479
|
override fun onSuccess(hmsMessage: HMSMessage) {}
|
|
420
480
|
}
|
|
421
481
|
)
|
|
422
482
|
}
|
|
423
483
|
} else {
|
|
424
|
-
|
|
425
|
-
"ON_ERROR",
|
|
426
|
-
HmsDecoder.getError(
|
|
427
|
-
HMSException(
|
|
428
|
-
102,
|
|
429
|
-
"NOT_FOUND",
|
|
430
|
-
"SEND_ALL_REQUIRED_KEYS",
|
|
431
|
-
"REQUIRED_KEYS_NOT_FOUND",
|
|
432
|
-
"REQUIRED_KEYS_NOT_FOUND"
|
|
433
|
-
)
|
|
434
|
-
)
|
|
435
|
-
)
|
|
484
|
+
self.emitRequiredKeysError()
|
|
436
485
|
}
|
|
437
486
|
}
|
|
438
487
|
|
|
@@ -458,24 +507,15 @@ class HmsSDK(
|
|
|
458
507
|
force,
|
|
459
508
|
object : HMSActionResultListener {
|
|
460
509
|
override fun onSuccess() {}
|
|
461
|
-
override fun onError(error: HMSException) {
|
|
510
|
+
override fun onError(error: HMSException) {
|
|
511
|
+
self.emitHMSError(error)
|
|
512
|
+
}
|
|
462
513
|
}
|
|
463
514
|
)
|
|
464
515
|
}
|
|
465
516
|
}
|
|
466
517
|
} else {
|
|
467
|
-
|
|
468
|
-
"ON_ERROR",
|
|
469
|
-
HmsDecoder.getError(
|
|
470
|
-
HMSException(
|
|
471
|
-
102,
|
|
472
|
-
"NOT_FOUND",
|
|
473
|
-
"SEND_ALL_REQUIRED_KEYS",
|
|
474
|
-
"REQUIRED_KEYS_NOT_FOUND",
|
|
475
|
-
"REQUIRED_KEYS_NOT_FOUND"
|
|
476
|
-
)
|
|
477
|
-
)
|
|
478
|
-
)
|
|
518
|
+
self.emitRequiredKeysError()
|
|
479
519
|
}
|
|
480
520
|
}
|
|
481
521
|
|
|
@@ -496,56 +536,51 @@ class HmsSDK(
|
|
|
496
536
|
mute,
|
|
497
537
|
object : HMSActionResultListener {
|
|
498
538
|
override fun onSuccess() {}
|
|
499
|
-
override fun onError(error: HMSException) {
|
|
539
|
+
override fun onError(error: HMSException) {
|
|
540
|
+
self.emitHMSError(error)
|
|
541
|
+
}
|
|
500
542
|
}
|
|
501
543
|
)
|
|
502
544
|
}
|
|
503
545
|
} else {
|
|
504
|
-
|
|
505
|
-
"ON_ERROR",
|
|
506
|
-
HmsDecoder.getError(
|
|
507
|
-
HMSException(
|
|
508
|
-
102,
|
|
509
|
-
"NOT_FOUND",
|
|
510
|
-
"SEND_ALL_REQUIRED_KEYS",
|
|
511
|
-
"REQUIRED_KEYS_NOT_FOUND",
|
|
512
|
-
"REQUIRED_KEYS_NOT_FOUND"
|
|
513
|
-
)
|
|
514
|
-
)
|
|
515
|
-
)
|
|
546
|
+
self.emitRequiredKeysError()
|
|
516
547
|
}
|
|
517
548
|
}
|
|
518
549
|
|
|
519
550
|
fun changeTrackStateRoles(data: ReadableMap) {
|
|
520
551
|
val requiredKeys =
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
552
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
553
|
+
data,
|
|
554
|
+
arrayOf(
|
|
555
|
+
Pair("source", "String"),
|
|
556
|
+
Pair("mute", "Boolean"),
|
|
557
|
+
Pair("type", "String"),
|
|
558
|
+
Pair("roles", "Array")
|
|
559
|
+
)
|
|
560
|
+
)
|
|
525
561
|
if (requiredKeys) {
|
|
526
562
|
val mute: Boolean = data.getBoolean("mute")
|
|
527
|
-
val type =
|
|
563
|
+
val type =
|
|
564
|
+
if (data.getString("type") == HMSTrackType.AUDIO.toString()) HMSTrackType.AUDIO
|
|
565
|
+
else HMSTrackType.VIDEO
|
|
528
566
|
val source = data.getString("source")
|
|
529
567
|
val targetedRoles = data.getArray("roles")?.toArrayList() as? ArrayList<String>
|
|
530
568
|
val roles = hmsSDK?.getRoles()
|
|
531
569
|
val encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles)
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
"SEND_ALL_REQUIRED_KEYS",
|
|
544
|
-
"REQUIRED_KEYS_NOT_FOUND",
|
|
545
|
-
"REQUIRED_KEYS_NOT_FOUND"
|
|
546
|
-
)
|
|
547
|
-
)
|
|
570
|
+
hmsSDK?.changeTrackState(
|
|
571
|
+
mute,
|
|
572
|
+
type,
|
|
573
|
+
source,
|
|
574
|
+
encodedTargetedRoles,
|
|
575
|
+
object : HMSActionResultListener {
|
|
576
|
+
override fun onSuccess() {}
|
|
577
|
+
override fun onError(error: HMSException) {
|
|
578
|
+
self.emitHMSError(error)
|
|
579
|
+
}
|
|
580
|
+
}
|
|
548
581
|
)
|
|
582
|
+
} else {
|
|
583
|
+
self.emitRequiredKeysError()
|
|
549
584
|
}
|
|
550
585
|
}
|
|
551
586
|
|
|
@@ -575,27 +610,34 @@ class HmsSDK(
|
|
|
575
610
|
}
|
|
576
611
|
|
|
577
612
|
fun removePeer(data: ReadableMap) {
|
|
578
|
-
val
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
reason = ""
|
|
583
|
-
}
|
|
613
|
+
val requiredKeys =
|
|
614
|
+
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("peerId", "String")))
|
|
615
|
+
if (requiredKeys) {
|
|
616
|
+
val peerId = data.getString("peerId")
|
|
617
|
+
var reason = data.getString("reason")
|
|
584
618
|
|
|
585
|
-
|
|
619
|
+
if (reason == null) {
|
|
620
|
+
reason = ""
|
|
621
|
+
}
|
|
586
622
|
|
|
587
|
-
|
|
623
|
+
val peers = hmsSDK?.getRemotePeers()
|
|
588
624
|
|
|
589
|
-
|
|
590
|
-
hmsSDK?.removePeerRequest(
|
|
591
|
-
peer,
|
|
592
|
-
reason,
|
|
593
|
-
object : HMSActionResultListener {
|
|
594
|
-
override fun onSuccess() {}
|
|
625
|
+
val peer = HmsHelper.getRemotePeerFromPeerId(peerId, peers)
|
|
595
626
|
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
627
|
+
if (peer != null) {
|
|
628
|
+
hmsSDK?.removePeerRequest(
|
|
629
|
+
peer,
|
|
630
|
+
reason,
|
|
631
|
+
object : HMSActionResultListener {
|
|
632
|
+
override fun onSuccess() {}
|
|
633
|
+
override fun onError(error: HMSException) {
|
|
634
|
+
self.emitHMSError(error)
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
)
|
|
638
|
+
}
|
|
639
|
+
} else {
|
|
640
|
+
self.emitRequiredKeysError()
|
|
599
641
|
}
|
|
600
642
|
}
|
|
601
643
|
|
|
@@ -611,8 +653,9 @@ class HmsSDK(
|
|
|
611
653
|
lock,
|
|
612
654
|
object : HMSActionResultListener {
|
|
613
655
|
override fun onSuccess() {}
|
|
614
|
-
|
|
615
|
-
|
|
656
|
+
override fun onError(error: HMSException) {
|
|
657
|
+
self.emitHMSError(error)
|
|
658
|
+
}
|
|
616
659
|
}
|
|
617
660
|
)
|
|
618
661
|
}
|
|
@@ -628,6 +671,7 @@ class HmsSDK(
|
|
|
628
671
|
|
|
629
672
|
override fun onError(error: HMSException) {
|
|
630
673
|
recentRoleChangeRequest = null
|
|
674
|
+
self.emitHMSError(error)
|
|
631
675
|
}
|
|
632
676
|
}
|
|
633
677
|
)
|
|
@@ -635,11 +679,7 @@ class HmsSDK(
|
|
|
635
679
|
}
|
|
636
680
|
|
|
637
681
|
fun muteAllPeersAudio(data: ReadableMap) {
|
|
638
|
-
val requiredKeys =
|
|
639
|
-
HmsHelper.areAllRequiredKeysAvailable(
|
|
640
|
-
data,
|
|
641
|
-
arrayOf(Pair("mute", "Boolean"))
|
|
642
|
-
)
|
|
682
|
+
val requiredKeys = HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("mute", "Boolean")))
|
|
643
683
|
if (requiredKeys) {
|
|
644
684
|
val mute = data.getBoolean("mute")
|
|
645
685
|
val peers = hmsSDK?.getRemotePeers()
|
|
@@ -661,19 +701,8 @@ class HmsSDK(
|
|
|
661
701
|
data.putString("id", id)
|
|
662
702
|
delegate.emitEvent("ON_PEER_UPDATE", data)
|
|
663
703
|
}
|
|
664
|
-
}else {
|
|
665
|
-
|
|
666
|
-
"ON_ERROR",
|
|
667
|
-
HmsDecoder.getError(
|
|
668
|
-
HMSException(
|
|
669
|
-
102,
|
|
670
|
-
"NOT_FOUND",
|
|
671
|
-
"SEND_ALL_REQUIRED_KEYS",
|
|
672
|
-
"REQUIRED_KEYS_NOT_FOUND",
|
|
673
|
-
"REQUIRED_KEYS_NOT_FOUND"
|
|
674
|
-
)
|
|
675
|
-
)
|
|
676
|
-
)
|
|
704
|
+
} else {
|
|
705
|
+
this.emitRequiredKeysError()
|
|
677
706
|
}
|
|
678
707
|
}
|
|
679
708
|
|
|
@@ -695,18 +724,7 @@ class HmsSDK(
|
|
|
695
724
|
remoteVideoTrack.isPlaybackAllowed = playbackAllowed
|
|
696
725
|
}
|
|
697
726
|
} else {
|
|
698
|
-
|
|
699
|
-
"ON_ERROR",
|
|
700
|
-
HmsDecoder.getError(
|
|
701
|
-
HMSException(
|
|
702
|
-
102,
|
|
703
|
-
"NOT_FOUND",
|
|
704
|
-
"SEND_ALL_REQUIRED_KEYS",
|
|
705
|
-
"REQUIRED_KEYS_NOT_FOUND",
|
|
706
|
-
"REQUIRED_KEYS_NOT_FOUND"
|
|
707
|
-
)
|
|
708
|
-
)
|
|
709
|
-
)
|
|
727
|
+
this.emitRequiredKeysError()
|
|
710
728
|
}
|
|
711
729
|
}
|
|
712
730
|
|
|
@@ -737,4 +755,145 @@ class HmsSDK(
|
|
|
737
755
|
|
|
738
756
|
callback?.resolve(roomData)
|
|
739
757
|
}
|
|
758
|
+
|
|
759
|
+
fun setVolume(data: ReadableMap) {
|
|
760
|
+
val requiredKeys =
|
|
761
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
762
|
+
data,
|
|
763
|
+
arrayOf(Pair("trackId", "String"), Pair("volume", "Float"))
|
|
764
|
+
)
|
|
765
|
+
|
|
766
|
+
if (requiredKeys) {
|
|
767
|
+
val trackId = data.getString("trackId")
|
|
768
|
+
val volume = data.getDouble("volume")
|
|
769
|
+
|
|
770
|
+
val remotePeers = hmsSDK?.getRemotePeers()
|
|
771
|
+
|
|
772
|
+
if (remotePeers != null) {
|
|
773
|
+
for (peer in remotePeers) {
|
|
774
|
+
val audioTrackId = peer.audioTrack?.trackId
|
|
775
|
+
|
|
776
|
+
if (audioTrackId == trackId) {
|
|
777
|
+
peer.audioTrack?.setVolume(volume)
|
|
778
|
+
return
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
for (auxTrack in peer.auxiliaryTracks) {
|
|
782
|
+
if (auxTrack.trackId == trackId && auxTrack.type == HMSTrackType.AUDIO) {
|
|
783
|
+
val trackExtracted = auxTrack as? HMSRemoteAudioTrack
|
|
784
|
+
|
|
785
|
+
if (trackExtracted != null) {
|
|
786
|
+
trackExtracted.setVolume(volume)
|
|
787
|
+
return
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
} else {
|
|
794
|
+
this.emitRequiredKeysError()
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
fun getVolume(data: ReadableMap, callback: Promise?) {
|
|
799
|
+
val requiredKeys =
|
|
800
|
+
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("trackId", "String")))
|
|
801
|
+
|
|
802
|
+
if (requiredKeys) {
|
|
803
|
+
val trackId = data.getString("trackId")
|
|
804
|
+
|
|
805
|
+
val localPeer = hmsSDK?.getLocalPeer()
|
|
806
|
+
|
|
807
|
+
if (localPeer?.audioTrack?.trackId == trackId) {
|
|
808
|
+
val volume = localPeer?.audioTrack?.volume
|
|
809
|
+
callback?.resolve(volume)
|
|
810
|
+
return
|
|
811
|
+
}
|
|
812
|
+
callback?.reject("101", "TRACK_IDS_DO_NOT_MATCH")
|
|
813
|
+
} else {
|
|
814
|
+
callback?.reject("101", "TRACK_NOT_FOUND")
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
fun changeMetadata(data: ReadableMap, callback: Promise?) {
|
|
819
|
+
val requiredKeys =
|
|
820
|
+
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("metadata", "String")))
|
|
821
|
+
|
|
822
|
+
if (requiredKeys) {
|
|
823
|
+
val metadata = data.getString("metadata")
|
|
824
|
+
|
|
825
|
+
if (metadata != null) {
|
|
826
|
+
hmsSDK?.changeMetadata(
|
|
827
|
+
metadata,
|
|
828
|
+
object : HMSActionResultListener {
|
|
829
|
+
override fun onSuccess() {
|
|
830
|
+
val result: WritableMap = Arguments.createMap()
|
|
831
|
+
|
|
832
|
+
result.putBoolean("success", true)
|
|
833
|
+
|
|
834
|
+
callback?.resolve(result)
|
|
835
|
+
}
|
|
836
|
+
override fun onError(error: HMSException) {
|
|
837
|
+
callback?.reject(error.message, error.description)
|
|
838
|
+
self.emitHMSError(error)
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
)
|
|
842
|
+
}
|
|
843
|
+
} else {
|
|
844
|
+
self.emitRequiredKeysError()
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
fun startRTMPOrRecording(data: ReadableMap, callback: Promise?) {
|
|
849
|
+
val requiredKeys =
|
|
850
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
851
|
+
data,
|
|
852
|
+
arrayOf(Pair("record", "Boolean"), Pair("meetingURL", "String"))
|
|
853
|
+
)
|
|
854
|
+
if (requiredKeys) {
|
|
855
|
+
val record = data.getBoolean("record")
|
|
856
|
+
var meetingURL = data.getString("meetingURL") as String
|
|
857
|
+
var rtmpURLs = data.getArray("rtmpURLs")
|
|
858
|
+
if (rtmpURLs == null) {
|
|
859
|
+
rtmpURLs = Arguments.createArray()
|
|
860
|
+
}
|
|
861
|
+
val rtmpURLsList = HmsHelper.getRtmpUrls(rtmpURLs)
|
|
862
|
+
val config = HMSRecordingConfig(meetingURL, rtmpURLsList, record)
|
|
863
|
+
|
|
864
|
+
hmsSDK?.startRtmpOrRecording(
|
|
865
|
+
config,
|
|
866
|
+
object : HMSActionResultListener {
|
|
867
|
+
override fun onSuccess() {
|
|
868
|
+
val result: WritableMap = Arguments.createMap()
|
|
869
|
+
result.putBoolean("success", true)
|
|
870
|
+
callback?.resolve(result)
|
|
871
|
+
}
|
|
872
|
+
override fun onError(error: HMSException) {
|
|
873
|
+
callback?.reject(error.message, error.description)
|
|
874
|
+
self.emitHMSError(error)
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
)
|
|
878
|
+
} else {
|
|
879
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
880
|
+
self.emitRequiredKeysError()
|
|
881
|
+
}
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
fun stopRtmpAndRecording(callback: Promise?) {
|
|
885
|
+
hmsSDK?.stopRtmpAndRecording(
|
|
886
|
+
object : HMSActionResultListener {
|
|
887
|
+
override fun onSuccess() {
|
|
888
|
+
val result: WritableMap = Arguments.createMap()
|
|
889
|
+
result.putBoolean("success", true)
|
|
890
|
+
callback?.resolve(result)
|
|
891
|
+
}
|
|
892
|
+
override fun onError(error: HMSException) {
|
|
893
|
+
callback?.reject(error.message, error.description)
|
|
894
|
+
self.emitHMSError(error)
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
)
|
|
898
|
+
}
|
|
740
899
|
}
|