@100mslive/react-native-hms 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/build.gradle +3 -2
- package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +226 -256
- package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +82 -31
- package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +99 -22
- package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +368 -221
- package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +66 -0
- package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +43 -24
- package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
- package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +14 -11
- package/android/src/main/res/layout/hms_view.xml +19 -0
- package/ios/HmsDecoder.swift +91 -22
- package/ios/HmsHelper.swift +34 -3
- package/ios/HmsManager.m +11 -9
- package/ios/HmsManager.swift +32 -18
- package/ios/HmsSDK.swift +193 -43
- package/ios/HmsView.swift +22 -54
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +3 -0
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +10 -6
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSConfig.js +20 -0
- package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -0
- package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js +23 -0
- package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -0
- package/lib/commonjs/classes/HMSHLSStreamingState.js +23 -0
- package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -0
- package/lib/commonjs/classes/HMSHLSVariant.js +29 -0
- package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -0
- package/lib/commonjs/classes/HMSLocalAudioTrack.js +20 -0
- package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalVideoTrack.js +18 -0
- package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js +55 -1
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js +19 -0
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js +19 -0
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRoom.js +3 -0
- package/lib/commonjs/classes/HMSRoom.js.map +1 -1
- package/lib/commonjs/classes/HMSRoomUpdate.js +6 -0
- package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +297 -145
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSettings.js +3 -0
- package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
- package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
- package/lib/commonjs/classes/HmsView.js +26 -4
- package/lib/commonjs/classes/HmsView.js.map +1 -1
- package/lib/commonjs/index.js +70 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSChangeTrackStateRequest.js +3 -0
- package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +10 -6
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSHLSConfig.js +11 -0
- package/lib/module/classes/HMSHLSConfig.js.map +1 -0
- package/lib/module/classes/HMSHLSMeetingURLVariant.js +14 -0
- package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -0
- package/lib/module/classes/HMSHLSStreamingState.js +14 -0
- package/lib/module/classes/HMSHLSStreamingState.js.map +1 -0
- package/lib/module/classes/HMSHLSVariant.js +20 -0
- package/lib/module/classes/HMSHLSVariant.js.map +1 -0
- package/lib/module/classes/HMSLocalAudioTrack.js +17 -0
- package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSLocalPeer.js.map +1 -1
- package/lib/module/classes/HMSLocalVideoTrack.js +15 -0
- package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSLogger.js +55 -1
- package/lib/module/classes/HMSLogger.js.map +1 -1
- package/lib/module/classes/HMSRemoteAudioTrack.js +16 -0
- package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSRemoteVideoTrack.js +16 -0
- package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSRoom.js +3 -0
- package/lib/module/classes/HMSRoom.js.map +1 -1
- package/lib/module/classes/HMSRoomUpdate.js +6 -0
- package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +295 -146
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSTrackSettings.js +3 -0
- package/lib/module/classes/HMSTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSVideoCodec.js +4 -4
- package/lib/module/classes/HMSVideoCodec.js.map +1 -1
- package/lib/module/classes/HmsView.js +23 -4
- package/lib/module/classes/HmsView.js.map +1 -1
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -0
- package/lib/typescript/classes/HMSHLSConfig.d.ts +7 -0
- package/lib/typescript/classes/HMSHLSMeetingURLVariant.d.ts +8 -0
- package/lib/typescript/classes/HMSHLSStreamingState.d.ts +9 -0
- package/lib/typescript/classes/HMSHLSVariant.d.ts +12 -0
- package/lib/typescript/classes/HMSLocalPeer.d.ts +3 -0
- package/lib/typescript/classes/HMSLogger.d.ts +9 -0
- package/lib/typescript/classes/HMSRoom.d.ts +3 -0
- package/lib/typescript/classes/HMSRoomUpdate.d.ts +7 -1
- package/lib/typescript/classes/HMSSDK.d.ts +22 -13
- package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
- package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
- package/lib/typescript/index.d.ts +5 -0
- package/package.json +1 -1
- package/react-native-hms.podspec +1 -1
- package/src/classes/HMSChangeTrackStateRequest.ts +7 -1
- package/src/classes/HMSEncoder.ts +5 -1
- package/src/classes/HMSHLSConfig.ts +9 -0
- package/src/classes/HMSHLSMeetingURLVariant.ts +9 -0
- package/src/classes/HMSHLSStreamingState.ts +11 -0
- package/src/classes/HMSHLSVariant.ts +18 -0
- package/src/classes/HMSLocalAudioTrack.ts +16 -0
- package/src/classes/HMSLocalPeer.ts +3 -0
- package/src/classes/HMSLocalVideoTrack.ts +15 -0
- package/src/classes/HMSLogger.ts +28 -1
- package/src/classes/HMSRemoteAudioTrack.ts +16 -0
- package/src/classes/HMSRemoteVideoTrack.ts +16 -0
- package/src/classes/HMSRoom.ts +4 -0
- package/src/classes/HMSRoomUpdate.ts +6 -0
- package/src/classes/HMSSDK.tsx +221 -84
- package/src/classes/HMSTrackSettings.ts +3 -0
- package/src/classes/HMSVideoCodec.ts +4 -4
- package/src/classes/HmsView.tsx +32 -4
- package/src/index.ts +5 -0
- package/android/.gradle/6.9/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/6.9/javaCompile/classAnalysis.bin +0 -0
- package/android/.gradle/6.9/javaCompile/jarAnalysis.bin +0 -0
- package/android/.gradle/6.9/javaCompile/javaCompile.lock +0 -0
- package/android/.gradle/6.9/javaCompile/taskHistory.bin +0 -0
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.project +0 -34
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
package com.reactnativehmssdk
|
|
2
2
|
|
|
3
|
+
import android.content.Intent
|
|
4
|
+
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
|
|
3
5
|
import com.facebook.react.bridge.*
|
|
6
|
+
import com.facebook.react.bridge.UiThreadUtil.runOnUiThread
|
|
4
7
|
import java.util.*
|
|
5
8
|
import kotlinx.coroutines.launch
|
|
6
9
|
import live.hms.video.error.HMSException
|
|
7
|
-
import live.hms.video.media.
|
|
8
|
-
import live.hms.video.media.tracks
|
|
10
|
+
import live.hms.video.media.tracks.HMSRemoteAudioTrack
|
|
11
|
+
import live.hms.video.media.tracks.HMSTrack
|
|
12
|
+
import live.hms.video.media.tracks.HMSTrackType
|
|
9
13
|
import live.hms.video.sdk.*
|
|
10
14
|
import live.hms.video.sdk.models.*
|
|
11
|
-
import live.hms.video.sdk.models.HMSConfig
|
|
12
15
|
import live.hms.video.sdk.models.enums.HMSPeerUpdate
|
|
13
16
|
import live.hms.video.sdk.models.enums.HMSRoomUpdate
|
|
14
17
|
import live.hms.video.sdk.models.enums.HMSTrackUpdate
|
|
@@ -23,22 +26,31 @@ class HmsSDK(
|
|
|
23
26
|
) {
|
|
24
27
|
var hmsSDK: HMSSDK? = null
|
|
25
28
|
private var recentRoleChangeRequest: HMSRoleChangeRequest? = null
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
var delegate: HmsModule = HmsDelegate
|
|
30
|
+
private var context: ReactApplicationContext = reactApplicationContext
|
|
31
|
+
private var previewInProgress: Boolean = false
|
|
32
|
+
private var id: String = sdkId
|
|
33
|
+
private var self = this
|
|
30
34
|
|
|
31
35
|
init {
|
|
32
|
-
val
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
val trackSettings = HmsHelper.getTrackSettings(data)
|
|
37
|
+
if (trackSettings == null) {
|
|
38
|
+
this.hmsSDK = HMSSDK.Builder(reactApplicationContext).build()
|
|
39
|
+
} else {
|
|
40
|
+
this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setTrackSettings(trackSettings).build()
|
|
41
|
+
}
|
|
42
|
+
}
|
|
37
43
|
|
|
38
|
-
|
|
44
|
+
private fun emitCustomError(message: String) {
|
|
45
|
+
val data: WritableMap = Arguments.createMap()
|
|
46
|
+
val hmsError = HMSException(102, message, message, message, message)
|
|
47
|
+
data.putString("event", "ON_ERROR")
|
|
48
|
+
data.putString("id", id)
|
|
49
|
+
data.putMap("error", HmsDecoder.getError(hmsError))
|
|
50
|
+
delegate.emitEvent("ON_ERROR", data)
|
|
39
51
|
}
|
|
40
52
|
|
|
41
|
-
fun emitRequiredKeysError() {
|
|
53
|
+
private fun emitRequiredKeysError() {
|
|
42
54
|
val data: WritableMap = Arguments.createMap()
|
|
43
55
|
val hmsError =
|
|
44
56
|
HMSException(
|
|
@@ -62,53 +74,62 @@ class HmsSDK(
|
|
|
62
74
|
delegate.emitEvent("ON_ERROR", data)
|
|
63
75
|
}
|
|
64
76
|
|
|
77
|
+
fun emitHMSSuccess(message: HMSMessage? = null): ReadableMap {
|
|
78
|
+
val hmsMessage =
|
|
79
|
+
if (message !== null) message.message else "function call executed successfully"
|
|
80
|
+
val data: WritableMap = Arguments.createMap()
|
|
81
|
+
data.putBoolean("success", true)
|
|
82
|
+
data.putString("message", hmsMessage)
|
|
83
|
+
return data
|
|
84
|
+
}
|
|
85
|
+
|
|
65
86
|
fun preview(credentials: ReadableMap) {
|
|
87
|
+
if (previewInProgress) {
|
|
88
|
+
self.emitCustomError("PREVIEW_ALREADY_IN_PROGRESS")
|
|
89
|
+
return
|
|
90
|
+
}
|
|
66
91
|
val requiredKeys =
|
|
67
92
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
68
93
|
credentials,
|
|
69
94
|
arrayOf(Pair("username", "String"), Pair("authToken", "String"))
|
|
70
95
|
)
|
|
71
96
|
if (requiredKeys) {
|
|
97
|
+
previewInProgress = true
|
|
72
98
|
var config =
|
|
73
99
|
HMSConfig(
|
|
74
100
|
credentials.getString("username") as String,
|
|
75
101
|
credentials.getString("authToken") as String,
|
|
76
102
|
)
|
|
77
103
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
HMSConfig(
|
|
108
|
-
credentials.getString("username") as String,
|
|
109
|
-
credentials.getString("authToken") as String,
|
|
110
|
-
metadata = credentials.getString("metadata") as String,
|
|
111
|
-
)
|
|
104
|
+
when {
|
|
105
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
106
|
+
credentials,
|
|
107
|
+
arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
|
|
108
|
+
) -> {
|
|
109
|
+
config =
|
|
110
|
+
HMSConfig(
|
|
111
|
+
credentials.getString("username") as String,
|
|
112
|
+
credentials.getString("authToken") as String,
|
|
113
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
114
|
+
metadata = credentials.getString("metadata") as String,
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
|
|
118
|
+
config =
|
|
119
|
+
HMSConfig(
|
|
120
|
+
credentials.getString("username") as String,
|
|
121
|
+
credentials.getString("authToken") as String,
|
|
122
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
|
|
126
|
+
config =
|
|
127
|
+
HMSConfig(
|
|
128
|
+
credentials.getString("username") as String,
|
|
129
|
+
credentials.getString("authToken") as String,
|
|
130
|
+
metadata = credentials.getString("metadata") as String,
|
|
131
|
+
)
|
|
132
|
+
}
|
|
112
133
|
}
|
|
113
134
|
|
|
114
135
|
hmsSDK?.preview(
|
|
@@ -116,6 +137,7 @@ class HmsSDK(
|
|
|
116
137
|
object : HMSPreviewListener {
|
|
117
138
|
override fun onError(error: HMSException) {
|
|
118
139
|
self.emitHMSError(error)
|
|
140
|
+
previewInProgress = false
|
|
119
141
|
}
|
|
120
142
|
|
|
121
143
|
override fun onPreview(room: HMSRoom, localTracks: Array<HMSTrack>) {
|
|
@@ -129,6 +151,7 @@ class HmsSDK(
|
|
|
129
151
|
data.putMap("localPeer", localPeerData)
|
|
130
152
|
data.putString("id", id)
|
|
131
153
|
delegate.emitEvent("ON_PREVIEW", data)
|
|
154
|
+
previewInProgress = false
|
|
132
155
|
}
|
|
133
156
|
}
|
|
134
157
|
)
|
|
@@ -138,6 +161,10 @@ class HmsSDK(
|
|
|
138
161
|
}
|
|
139
162
|
|
|
140
163
|
fun join(credentials: ReadableMap) {
|
|
164
|
+
if (previewInProgress) {
|
|
165
|
+
self.emitCustomError("PREVIEW_IS_IN_PROGRESS")
|
|
166
|
+
return
|
|
167
|
+
}
|
|
141
168
|
val requiredKeys =
|
|
142
169
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
143
170
|
credentials,
|
|
@@ -150,40 +177,35 @@ class HmsSDK(
|
|
|
150
177
|
credentials.getString("authToken") as String
|
|
151
178
|
)
|
|
152
179
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
HMSConfig(
|
|
183
|
-
credentials.getString("username") as String,
|
|
184
|
-
credentials.getString("authToken") as String,
|
|
185
|
-
metadata = credentials.getString("metadata") as String,
|
|
186
|
-
)
|
|
180
|
+
when {
|
|
181
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
182
|
+
credentials,
|
|
183
|
+
arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
|
|
184
|
+
) -> {
|
|
185
|
+
config =
|
|
186
|
+
HMSConfig(
|
|
187
|
+
credentials.getString("username") as String,
|
|
188
|
+
credentials.getString("authToken") as String,
|
|
189
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
190
|
+
metadata = credentials.getString("metadata") as String,
|
|
191
|
+
)
|
|
192
|
+
}
|
|
193
|
+
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
|
|
194
|
+
config =
|
|
195
|
+
HMSConfig(
|
|
196
|
+
credentials.getString("username") as String,
|
|
197
|
+
credentials.getString("authToken") as String,
|
|
198
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
199
|
+
)
|
|
200
|
+
}
|
|
201
|
+
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
|
|
202
|
+
config =
|
|
203
|
+
HMSConfig(
|
|
204
|
+
credentials.getString("username") as String,
|
|
205
|
+
credentials.getString("authToken") as String,
|
|
206
|
+
metadata = credentials.getString("metadata") as String,
|
|
207
|
+
)
|
|
208
|
+
}
|
|
187
209
|
}
|
|
188
210
|
|
|
189
211
|
HMSCoroutineScope.launch {
|
|
@@ -191,14 +213,13 @@ class HmsSDK(
|
|
|
191
213
|
hmsSDK?.join(
|
|
192
214
|
config,
|
|
193
215
|
object : HMSUpdateListener {
|
|
194
|
-
override fun onChangeTrackStateRequest(
|
|
216
|
+
override fun onChangeTrackStateRequest(details: HMSChangeTrackStateRequest) {
|
|
195
217
|
val decodedChangeTrackStateRequest =
|
|
196
|
-
HmsDecoder.getHmsChangeTrackStateRequest(
|
|
218
|
+
HmsDecoder.getHmsChangeTrackStateRequest(details, id)
|
|
197
219
|
delegate.emitEvent(
|
|
198
220
|
"ON_CHANGE_TRACK_STATE_REQUEST",
|
|
199
221
|
decodedChangeTrackStateRequest
|
|
200
222
|
)
|
|
201
|
-
changeTrackStateRequest = request
|
|
202
223
|
}
|
|
203
224
|
|
|
204
225
|
override fun onRemovedFromRoom(notification: HMSRemovedFromRoom) {
|
|
@@ -238,16 +259,18 @@ class HmsSDK(
|
|
|
238
259
|
delegate.emitEvent("ON_JOIN", data)
|
|
239
260
|
}
|
|
240
261
|
|
|
241
|
-
override fun onPeerUpdate(type: HMSPeerUpdate,
|
|
242
|
-
val
|
|
262
|
+
override fun onPeerUpdate(type: HMSPeerUpdate, peer: HMSPeer) {
|
|
263
|
+
val updateType = type.name
|
|
243
264
|
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
244
265
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
245
266
|
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
267
|
+
val hmsPeer = HmsDecoder.getHmsPeer(peer)
|
|
246
268
|
|
|
247
269
|
val data: WritableMap = Arguments.createMap()
|
|
248
270
|
|
|
271
|
+
data.putMap("peer", hmsPeer)
|
|
249
272
|
data.putMap("room", roomData)
|
|
250
|
-
data.putString("type",
|
|
273
|
+
data.putString("type", updateType)
|
|
251
274
|
data.putMap("localPeer", localPeerData)
|
|
252
275
|
data.putArray("remotePeers", remotePeerData)
|
|
253
276
|
data.putString("id", id)
|
|
@@ -255,14 +278,14 @@ class HmsSDK(
|
|
|
255
278
|
}
|
|
256
279
|
|
|
257
280
|
override fun onRoomUpdate(type: HMSRoomUpdate, hmsRoom: HMSRoom) {
|
|
258
|
-
val
|
|
281
|
+
val updateType = type.name
|
|
259
282
|
val roomData = HmsDecoder.getHmsRoom(hmsRoom)
|
|
260
283
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
261
284
|
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
262
285
|
|
|
263
286
|
val data: WritableMap = Arguments.createMap()
|
|
264
287
|
|
|
265
|
-
data.putString("type",
|
|
288
|
+
data.putString("type", updateType)
|
|
266
289
|
data.putMap("room", roomData)
|
|
267
290
|
data.putMap("localPeer", localPeerData)
|
|
268
291
|
data.putArray("remotePeers", remotePeerData)
|
|
@@ -271,15 +294,19 @@ class HmsSDK(
|
|
|
271
294
|
}
|
|
272
295
|
|
|
273
296
|
override fun onTrackUpdate(type: HMSTrackUpdate, track: HMSTrack, peer: HMSPeer) {
|
|
274
|
-
val
|
|
297
|
+
val updateType = type.name
|
|
275
298
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
276
299
|
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
277
300
|
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
301
|
+
val hmsPeer = HmsDecoder.getHmsPeer(peer)
|
|
302
|
+
val hmsTrack = HmsDecoder.getHmsTrack(track)
|
|
278
303
|
|
|
279
304
|
val data: WritableMap = Arguments.createMap()
|
|
280
305
|
|
|
306
|
+
data.putMap("peer", hmsPeer)
|
|
307
|
+
data.putMap("track", hmsTrack)
|
|
281
308
|
data.putMap("room", roomData)
|
|
282
|
-
data.putString("type",
|
|
309
|
+
data.putString("type", updateType)
|
|
283
310
|
data.putMap("localPeer", localPeerData)
|
|
284
311
|
data.putArray("remotePeers", remotePeerData)
|
|
285
312
|
data.putString("id", id)
|
|
@@ -334,9 +361,9 @@ class HmsSDK(
|
|
|
334
361
|
val peers: WritableArray = Arguments.createArray()
|
|
335
362
|
for (speaker in speakers) {
|
|
336
363
|
val speakerArray: WritableMap = Arguments.createMap()
|
|
337
|
-
speakerArray.putMap("peer", HmsDecoder.getHmsPeer(speaker
|
|
338
|
-
speakerArray.putInt("level", speaker
|
|
339
|
-
speakerArray.putMap("track", HmsDecoder.getHmsTrack(speaker
|
|
364
|
+
speakerArray.putMap("peer", HmsDecoder.getHmsPeer(speaker.peer))
|
|
365
|
+
speakerArray.putInt("level", speaker.level)
|
|
366
|
+
speakerArray.putMap("track", HmsDecoder.getHmsTrack(speaker.hmsTrack))
|
|
340
367
|
peers.pushMap(speakerArray)
|
|
341
368
|
}
|
|
342
369
|
data.putArray("peers", peers)
|
|
@@ -359,14 +386,14 @@ class HmsSDK(
|
|
|
359
386
|
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
360
387
|
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
361
388
|
|
|
362
|
-
val
|
|
389
|
+
val map: WritableMap = Arguments.createMap()
|
|
363
390
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
delegate.emitEvent("ON_TRACK_UPDATE",
|
|
391
|
+
map.putMap("room", roomData)
|
|
392
|
+
map.putString("type", type)
|
|
393
|
+
map.putMap("localPeer", localPeerData)
|
|
394
|
+
map.putArray("remotePeers", remotePeerData)
|
|
395
|
+
map.putString("id", id)
|
|
396
|
+
delegate.emitEvent("ON_TRACK_UPDATE", map)
|
|
370
397
|
}
|
|
371
398
|
|
|
372
399
|
fun setLocalVideoMute(data: ReadableMap) {
|
|
@@ -375,7 +402,7 @@ class HmsSDK(
|
|
|
375
402
|
}
|
|
376
403
|
|
|
377
404
|
fun switchCamera() {
|
|
378
|
-
if (hmsSDK?.getLocalPeer()?.videoTrack?.isMute
|
|
405
|
+
if (hmsSDK?.getLocalPeer()?.videoTrack?.isMute == false) {
|
|
379
406
|
HMSCoroutineScope.launch { hmsSDK?.getLocalPeer()?.videoTrack?.switchCamera() }
|
|
380
407
|
}
|
|
381
408
|
}
|
|
@@ -384,108 +411,110 @@ class HmsSDK(
|
|
|
384
411
|
hmsSDK?.leave(
|
|
385
412
|
object : HMSActionResultListener {
|
|
386
413
|
override fun onSuccess() {
|
|
387
|
-
callback?.resolve(
|
|
414
|
+
callback?.resolve(emitHMSSuccess())
|
|
388
415
|
}
|
|
389
416
|
|
|
390
417
|
override fun onError(error: HMSException) {
|
|
391
|
-
callback?.reject(
|
|
418
|
+
callback?.reject(error.code.toString(), error.message)
|
|
392
419
|
self.emitHMSError(error)
|
|
393
420
|
}
|
|
394
421
|
}
|
|
395
422
|
)
|
|
396
423
|
}
|
|
397
424
|
|
|
398
|
-
fun sendBroadcastMessage(data: ReadableMap) {
|
|
425
|
+
fun sendBroadcastMessage(data: ReadableMap, callback: Promise?) {
|
|
399
426
|
val requiredKeys =
|
|
400
|
-
HmsHelper.areAllRequiredKeysAvailable(
|
|
427
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
428
|
+
data,
|
|
429
|
+
arrayOf(Pair("message", "String"), Pair("type", "String"))
|
|
430
|
+
)
|
|
401
431
|
if (requiredKeys) {
|
|
402
|
-
val type =
|
|
403
|
-
if (HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("type", "String"))))
|
|
404
|
-
data.getString("type")
|
|
405
|
-
else "chat"
|
|
406
432
|
hmsSDK?.sendBroadcastMessage(
|
|
407
433
|
data.getString("message") as String,
|
|
408
|
-
type as String,
|
|
434
|
+
data.getString("type") as String,
|
|
409
435
|
object : HMSMessageResultListener {
|
|
410
436
|
override fun onError(error: HMSException) {
|
|
411
437
|
self.emitHMSError(error)
|
|
438
|
+
callback?.reject(error.code.toString(), error.message)
|
|
439
|
+
}
|
|
440
|
+
override fun onSuccess(hmsMessage: HMSMessage) {
|
|
441
|
+
callback?.resolve(emitHMSSuccess(hmsMessage))
|
|
412
442
|
}
|
|
413
|
-
override fun onSuccess(hmsMessage: HMSMessage) {}
|
|
414
443
|
}
|
|
415
444
|
)
|
|
416
445
|
} else {
|
|
417
446
|
self.emitRequiredKeysError()
|
|
447
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
418
448
|
}
|
|
419
449
|
}
|
|
420
450
|
|
|
421
|
-
fun sendGroupMessage(data: ReadableMap) {
|
|
451
|
+
fun sendGroupMessage(data: ReadableMap, callback: Promise?) {
|
|
422
452
|
val requiredKeys =
|
|
423
453
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
424
454
|
data,
|
|
425
|
-
arrayOf(Pair("message", "String"), Pair("roles", "Array"))
|
|
455
|
+
arrayOf(Pair("message", "String"), Pair("roles", "Array"), Pair("type", "String"))
|
|
426
456
|
)
|
|
427
457
|
if (requiredKeys) {
|
|
428
|
-
val type =
|
|
429
|
-
if (HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("type", "String"))))
|
|
430
|
-
data.getString("type")
|
|
431
|
-
else "chat"
|
|
432
|
-
val message = data.getString("message")
|
|
433
458
|
val targetedRoles = data.getArray("roles")?.toArrayList() as? ArrayList<String>
|
|
434
459
|
val roles = hmsSDK?.getRoles()
|
|
435
460
|
val encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles)
|
|
436
461
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
}
|
|
446
|
-
override fun onSuccess(hmsMessage: HMSMessage) {}
|
|
462
|
+
hmsSDK?.sendGroupMessage(
|
|
463
|
+
data.getString("message") as String,
|
|
464
|
+
data.getString("type") as String,
|
|
465
|
+
encodedTargetedRoles,
|
|
466
|
+
object : HMSMessageResultListener {
|
|
467
|
+
override fun onError(error: HMSException) {
|
|
468
|
+
self.emitHMSError(error)
|
|
469
|
+
callback?.reject(error.code.toString(), error.message)
|
|
447
470
|
}
|
|
448
|
-
|
|
449
|
-
|
|
471
|
+
override fun onSuccess(hmsMessage: HMSMessage) {
|
|
472
|
+
callback?.resolve(emitHMSSuccess(hmsMessage))
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
)
|
|
450
476
|
} else {
|
|
451
477
|
self.emitRequiredKeysError()
|
|
478
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
452
479
|
}
|
|
453
480
|
}
|
|
454
481
|
|
|
455
|
-
fun sendDirectMessage(data: ReadableMap) {
|
|
482
|
+
fun sendDirectMessage(data: ReadableMap, callback: Promise?) {
|
|
456
483
|
val requiredKeys =
|
|
457
484
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
458
485
|
data,
|
|
459
|
-
arrayOf(Pair("message", "String"), Pair("peerId", "String"))
|
|
486
|
+
arrayOf(Pair("message", "String"), Pair("peerId", "String"), Pair("type", "String"))
|
|
460
487
|
)
|
|
461
488
|
if (requiredKeys) {
|
|
462
|
-
val type =
|
|
463
|
-
if (HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("type", "String"))))
|
|
464
|
-
data.getString("type")
|
|
465
|
-
else "chat"
|
|
466
|
-
val message = data.getString("message")
|
|
467
489
|
val peerId = data.getString("peerId")
|
|
468
490
|
val peers = hmsSDK?.getPeers()
|
|
469
491
|
val peer = HmsHelper.getPeerFromPeerId(peerId, peers)
|
|
470
|
-
if (
|
|
492
|
+
if (peer != null) {
|
|
471
493
|
hmsSDK?.sendDirectMessage(
|
|
472
|
-
message,
|
|
473
|
-
type as String,
|
|
494
|
+
data.getString("message") as String,
|
|
495
|
+
data.getString("type") as String,
|
|
474
496
|
peer,
|
|
475
497
|
object : HMSMessageResultListener {
|
|
476
498
|
override fun onError(error: HMSException) {
|
|
477
499
|
self.emitHMSError(error)
|
|
500
|
+
callback?.reject(error.code.toString(), error.message)
|
|
501
|
+
}
|
|
502
|
+
override fun onSuccess(hmsMessage: HMSMessage) {
|
|
503
|
+
callback?.resolve(emitHMSSuccess(hmsMessage))
|
|
478
504
|
}
|
|
479
|
-
override fun onSuccess(hmsMessage: HMSMessage) {}
|
|
480
505
|
}
|
|
481
506
|
)
|
|
507
|
+
} else {
|
|
508
|
+
self.emitCustomError("PEER_NOT_FOUND")
|
|
509
|
+
callback?.reject("101", "PEER_NOT_FOUND")
|
|
482
510
|
}
|
|
483
511
|
} else {
|
|
484
512
|
self.emitRequiredKeysError()
|
|
513
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
485
514
|
}
|
|
486
515
|
}
|
|
487
516
|
|
|
488
|
-
fun changeRole(data: ReadableMap) {
|
|
517
|
+
fun changeRole(data: ReadableMap, callback: Promise?) {
|
|
489
518
|
val requiredKeys =
|
|
490
519
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
491
520
|
data,
|
|
@@ -502,13 +531,16 @@ class HmsSDK(
|
|
|
502
531
|
|
|
503
532
|
if (hmsRole != null && hmsPeer != null) {
|
|
504
533
|
hmsSDK?.changeRole(
|
|
505
|
-
hmsPeer
|
|
534
|
+
hmsPeer,
|
|
506
535
|
hmsRole,
|
|
507
536
|
force,
|
|
508
537
|
object : HMSActionResultListener {
|
|
509
|
-
override fun onSuccess() {
|
|
538
|
+
override fun onSuccess() {
|
|
539
|
+
callback?.resolve(emitHMSSuccess())
|
|
540
|
+
}
|
|
510
541
|
override fun onError(error: HMSException) {
|
|
511
542
|
self.emitHMSError(error)
|
|
543
|
+
callback?.reject(error.code.toString(), error.message)
|
|
512
544
|
}
|
|
513
545
|
}
|
|
514
546
|
)
|
|
@@ -516,10 +548,11 @@ class HmsSDK(
|
|
|
516
548
|
}
|
|
517
549
|
} else {
|
|
518
550
|
self.emitRequiredKeysError()
|
|
551
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
519
552
|
}
|
|
520
553
|
}
|
|
521
554
|
|
|
522
|
-
fun changeTrackState(data: ReadableMap) {
|
|
555
|
+
fun changeTrackState(data: ReadableMap, callback: Promise?) {
|
|
523
556
|
val requiredKeys =
|
|
524
557
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
525
558
|
data,
|
|
@@ -535,36 +568,51 @@ class HmsSDK(
|
|
|
535
568
|
track,
|
|
536
569
|
mute,
|
|
537
570
|
object : HMSActionResultListener {
|
|
538
|
-
override fun onSuccess() {
|
|
571
|
+
override fun onSuccess() {
|
|
572
|
+
callback?.resolve(emitHMSSuccess())
|
|
573
|
+
}
|
|
539
574
|
override fun onError(error: HMSException) {
|
|
540
575
|
self.emitHMSError(error)
|
|
576
|
+
callback?.reject(error.code.toString(), error.message)
|
|
541
577
|
}
|
|
542
578
|
}
|
|
543
579
|
)
|
|
544
580
|
}
|
|
545
581
|
} else {
|
|
546
582
|
self.emitRequiredKeysError()
|
|
583
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
547
584
|
}
|
|
548
585
|
}
|
|
549
586
|
|
|
550
|
-
fun
|
|
587
|
+
fun changeTrackStateForRoles(data: ReadableMap, callback: Promise?) {
|
|
551
588
|
val requiredKeys =
|
|
552
589
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
553
590
|
data,
|
|
554
591
|
arrayOf(
|
|
555
|
-
Pair("source", "String"),
|
|
556
592
|
Pair("mute", "Boolean"),
|
|
557
|
-
Pair("type", "String"),
|
|
558
|
-
Pair("roles", "Array")
|
|
559
593
|
)
|
|
560
594
|
)
|
|
561
595
|
if (requiredKeys) {
|
|
562
596
|
val mute: Boolean = data.getBoolean("mute")
|
|
563
597
|
val type =
|
|
564
|
-
if (
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
598
|
+
if (HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("type", "String")))) {
|
|
599
|
+
if (data.getString("type") == HMSTrackType.AUDIO.toString()) HMSTrackType.AUDIO
|
|
600
|
+
else HMSTrackType.VIDEO
|
|
601
|
+
} else {
|
|
602
|
+
null
|
|
603
|
+
}
|
|
604
|
+
val source =
|
|
605
|
+
if (HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("source", "String")))) {
|
|
606
|
+
data.getString("source")
|
|
607
|
+
} else {
|
|
608
|
+
null
|
|
609
|
+
}
|
|
610
|
+
val targetedRoles =
|
|
611
|
+
if (HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("roles", "Array")))) {
|
|
612
|
+
data.getArray("roles")?.toArrayList() as? ArrayList<String>
|
|
613
|
+
} else {
|
|
614
|
+
null
|
|
615
|
+
}
|
|
568
616
|
val roles = hmsSDK?.getRoles()
|
|
569
617
|
val encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles)
|
|
570
618
|
hmsSDK?.changeTrackState(
|
|
@@ -573,14 +621,18 @@ class HmsSDK(
|
|
|
573
621
|
source,
|
|
574
622
|
encodedTargetedRoles,
|
|
575
623
|
object : HMSActionResultListener {
|
|
576
|
-
override fun onSuccess() {
|
|
624
|
+
override fun onSuccess() {
|
|
625
|
+
callback?.resolve(emitHMSSuccess())
|
|
626
|
+
}
|
|
577
627
|
override fun onError(error: HMSException) {
|
|
578
628
|
self.emitHMSError(error)
|
|
629
|
+
callback?.reject(error.code.toString(), error.message)
|
|
579
630
|
}
|
|
580
631
|
}
|
|
581
632
|
)
|
|
582
633
|
} else {
|
|
583
634
|
self.emitRequiredKeysError()
|
|
635
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
584
636
|
}
|
|
585
637
|
}
|
|
586
638
|
|
|
@@ -605,76 +657,88 @@ class HmsSDK(
|
|
|
605
657
|
callback?.resolve(mute)
|
|
606
658
|
}
|
|
607
659
|
} else {
|
|
608
|
-
callback?.reject("
|
|
660
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
609
661
|
}
|
|
610
662
|
}
|
|
611
663
|
|
|
612
|
-
fun removePeer(data: ReadableMap) {
|
|
664
|
+
fun removePeer(data: ReadableMap, callback: Promise?) {
|
|
613
665
|
val requiredKeys =
|
|
614
|
-
HmsHelper.areAllRequiredKeysAvailable(
|
|
666
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
667
|
+
data,
|
|
668
|
+
arrayOf(Pair("peerId", "String"), Pair("reason", "String"))
|
|
669
|
+
)
|
|
615
670
|
if (requiredKeys) {
|
|
616
671
|
val peerId = data.getString("peerId")
|
|
617
|
-
var reason = data.getString("reason")
|
|
618
|
-
|
|
619
|
-
if (reason == null) {
|
|
620
|
-
reason = ""
|
|
621
|
-
}
|
|
622
|
-
|
|
623
672
|
val peers = hmsSDK?.getRemotePeers()
|
|
624
|
-
|
|
625
673
|
val peer = HmsHelper.getRemotePeerFromPeerId(peerId, peers)
|
|
626
674
|
|
|
627
675
|
if (peer != null) {
|
|
628
676
|
hmsSDK?.removePeerRequest(
|
|
629
677
|
peer,
|
|
630
|
-
reason,
|
|
678
|
+
data.getString("reason") as String,
|
|
631
679
|
object : HMSActionResultListener {
|
|
632
|
-
override fun onSuccess() {
|
|
680
|
+
override fun onSuccess() {
|
|
681
|
+
callback?.resolve(emitHMSSuccess())
|
|
682
|
+
}
|
|
633
683
|
override fun onError(error: HMSException) {
|
|
634
684
|
self.emitHMSError(error)
|
|
685
|
+
callback?.reject(error.code.toString(), error.message)
|
|
635
686
|
}
|
|
636
687
|
}
|
|
637
688
|
)
|
|
689
|
+
} else {
|
|
690
|
+
self.emitCustomError("PEER_NOT_FOUND")
|
|
691
|
+
callback?.reject("101", "PEER_NOT_FOUND")
|
|
638
692
|
}
|
|
639
693
|
} else {
|
|
640
694
|
self.emitRequiredKeysError()
|
|
695
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
641
696
|
}
|
|
642
697
|
}
|
|
643
698
|
|
|
644
|
-
fun endRoom(data: ReadableMap) {
|
|
645
|
-
val
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
699
|
+
fun endRoom(data: ReadableMap, callback: Promise?) {
|
|
700
|
+
val requiredKeys =
|
|
701
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
702
|
+
data,
|
|
703
|
+
arrayOf(Pair("lock", "Boolean"), Pair("reason", "String"))
|
|
704
|
+
)
|
|
705
|
+
if (requiredKeys) {
|
|
706
|
+
hmsSDK?.endRoom(
|
|
707
|
+
data.getString("reason") as String,
|
|
708
|
+
data.getBoolean("lock"),
|
|
709
|
+
object : HMSActionResultListener {
|
|
710
|
+
override fun onSuccess() {
|
|
711
|
+
callback?.resolve(emitHMSSuccess())
|
|
712
|
+
}
|
|
713
|
+
override fun onError(error: HMSException) {
|
|
714
|
+
self.emitHMSError(error)
|
|
715
|
+
callback?.reject(error.code.toString(), error.message)
|
|
716
|
+
}
|
|
658
717
|
}
|
|
659
|
-
|
|
660
|
-
|
|
718
|
+
)
|
|
719
|
+
} else {
|
|
720
|
+
self.emitRequiredKeysError()
|
|
721
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
722
|
+
}
|
|
661
723
|
}
|
|
662
724
|
|
|
663
|
-
fun acceptRoleChange() {
|
|
725
|
+
fun acceptRoleChange(callback: Promise?) {
|
|
664
726
|
if (recentRoleChangeRequest !== null) {
|
|
727
|
+
|
|
665
728
|
hmsSDK?.acceptChangeRole(
|
|
666
729
|
recentRoleChangeRequest!!,
|
|
667
730
|
object : HMSActionResultListener {
|
|
668
731
|
override fun onSuccess() {
|
|
669
|
-
|
|
732
|
+
callback?.resolve(emitHMSSuccess())
|
|
670
733
|
}
|
|
671
|
-
|
|
672
734
|
override fun onError(error: HMSException) {
|
|
673
|
-
recentRoleChangeRequest = null
|
|
674
735
|
self.emitHMSError(error)
|
|
736
|
+
callback?.reject(error.code.toString(), error.message)
|
|
675
737
|
}
|
|
676
738
|
}
|
|
677
739
|
)
|
|
740
|
+
|
|
741
|
+
recentRoleChangeRequest = null
|
|
678
742
|
}
|
|
679
743
|
}
|
|
680
744
|
|
|
@@ -687,19 +751,17 @@ class HmsSDK(
|
|
|
687
751
|
for (remotePeer in peers) {
|
|
688
752
|
val peerId = remotePeer.peerID
|
|
689
753
|
val peer = HmsHelper.getRemotePeerFromPeerId(peerId, peers)
|
|
690
|
-
|
|
691
|
-
peer?.audioTrack?.isPlaybackAllowed = !mute
|
|
692
|
-
}
|
|
754
|
+
peer?.audioTrack?.isPlaybackAllowed = !mute
|
|
693
755
|
}
|
|
694
756
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
695
757
|
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
696
758
|
|
|
697
|
-
val
|
|
759
|
+
val map: WritableMap = Arguments.createMap()
|
|
698
760
|
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
delegate.emitEvent("ON_PEER_UPDATE",
|
|
761
|
+
map.putMap("localPeer", localPeerData)
|
|
762
|
+
map.putArray("remotePeers", remotePeerData)
|
|
763
|
+
map.putString("id", id)
|
|
764
|
+
delegate.emitEvent("ON_PEER_UPDATE", map)
|
|
703
765
|
}
|
|
704
766
|
} else {
|
|
705
767
|
this.emitRequiredKeysError()
|
|
@@ -736,14 +798,18 @@ class HmsSDK(
|
|
|
736
798
|
val remotePeers = hmsSDK?.getRemotePeers()
|
|
737
799
|
val remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
|
|
738
800
|
val remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
801
|
+
when {
|
|
802
|
+
remoteAudioTrack != null -> {
|
|
803
|
+
val isPlaybackAllowed = remoteAudioTrack.isPlaybackAllowed
|
|
804
|
+
callback?.resolve(isPlaybackAllowed)
|
|
805
|
+
}
|
|
806
|
+
remoteVideoTrack != null -> {
|
|
807
|
+
val isPlaybackAllowed = remoteVideoTrack.isPlaybackAllowed
|
|
808
|
+
callback?.resolve(isPlaybackAllowed)
|
|
809
|
+
}
|
|
810
|
+
else -> {
|
|
811
|
+
callback?.reject("101", "NOT_FOUND")
|
|
812
|
+
}
|
|
747
813
|
}
|
|
748
814
|
} else {
|
|
749
815
|
callback?.reject("101", "TRACK_ID_NOT_FOUND")
|
|
@@ -752,7 +818,6 @@ class HmsSDK(
|
|
|
752
818
|
|
|
753
819
|
fun getRoom(callback: Promise?) {
|
|
754
820
|
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
755
|
-
|
|
756
821
|
callback?.resolve(roomData)
|
|
757
822
|
}
|
|
758
823
|
|
|
@@ -827,14 +892,10 @@ class HmsSDK(
|
|
|
827
892
|
metadata,
|
|
828
893
|
object : HMSActionResultListener {
|
|
829
894
|
override fun onSuccess() {
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
result.putBoolean("success", true)
|
|
833
|
-
|
|
834
|
-
callback?.resolve(result)
|
|
895
|
+
callback?.resolve(emitHMSSuccess())
|
|
835
896
|
}
|
|
836
897
|
override fun onError(error: HMSException) {
|
|
837
|
-
callback?.reject(error.
|
|
898
|
+
callback?.reject(error.code.toString(), error.message)
|
|
838
899
|
self.emitHMSError(error)
|
|
839
900
|
}
|
|
840
901
|
}
|
|
@@ -853,7 +914,7 @@ class HmsSDK(
|
|
|
853
914
|
)
|
|
854
915
|
if (requiredKeys) {
|
|
855
916
|
val record = data.getBoolean("record")
|
|
856
|
-
|
|
917
|
+
val meetingURL = data.getString("meetingURL") as String
|
|
857
918
|
var rtmpURLs = data.getArray("rtmpURLs")
|
|
858
919
|
if (rtmpURLs == null) {
|
|
859
920
|
rtmpURLs = Arguments.createArray()
|
|
@@ -865,12 +926,10 @@ class HmsSDK(
|
|
|
865
926
|
config,
|
|
866
927
|
object : HMSActionResultListener {
|
|
867
928
|
override fun onSuccess() {
|
|
868
|
-
|
|
869
|
-
result.putBoolean("success", true)
|
|
870
|
-
callback?.resolve(result)
|
|
929
|
+
callback?.resolve(emitHMSSuccess())
|
|
871
930
|
}
|
|
872
931
|
override fun onError(error: HMSException) {
|
|
873
|
-
callback?.reject(error.
|
|
932
|
+
callback?.reject(error.code.toString(), error.message)
|
|
874
933
|
self.emitHMSError(error)
|
|
875
934
|
}
|
|
876
935
|
}
|
|
@@ -885,15 +944,103 @@ class HmsSDK(
|
|
|
885
944
|
hmsSDK?.stopRtmpAndRecording(
|
|
886
945
|
object : HMSActionResultListener {
|
|
887
946
|
override fun onSuccess() {
|
|
888
|
-
|
|
889
|
-
result.putBoolean("success", true)
|
|
890
|
-
callback?.resolve(result)
|
|
947
|
+
callback?.resolve(emitHMSSuccess())
|
|
891
948
|
}
|
|
892
949
|
override fun onError(error: HMSException) {
|
|
893
|
-
callback?.reject(error.
|
|
950
|
+
callback?.reject(error.code.toString(), error.message)
|
|
894
951
|
self.emitHMSError(error)
|
|
895
952
|
}
|
|
896
953
|
}
|
|
897
954
|
)
|
|
898
955
|
}
|
|
956
|
+
|
|
957
|
+
fun startScreenshare() {
|
|
958
|
+
runOnUiThread {
|
|
959
|
+
val intent = Intent(context, HmsScreenshareActivity::class.java)
|
|
960
|
+
intent.flags = FLAG_ACTIVITY_NEW_TASK
|
|
961
|
+
intent.putExtra("id", id)
|
|
962
|
+
context.startActivity(intent)
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
fun isScreenShared(callback: Promise?) {
|
|
967
|
+
callback?.resolve(hmsSDK?.isScreenShared())
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
fun stopScreenshare(callback: Promise?) {
|
|
971
|
+
hmsSDK?.stopScreenshare(
|
|
972
|
+
object : HMSActionResultListener {
|
|
973
|
+
override fun onError(error: HMSException) {
|
|
974
|
+
callback?.reject(error.code.toString(), error.message)
|
|
975
|
+
self.emitHMSError(error)
|
|
976
|
+
}
|
|
977
|
+
override fun onSuccess() {
|
|
978
|
+
callback?.resolve(emitHMSSuccess())
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
)
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
fun startHLSStreaming(data: ReadableMap, callback: Promise?) {
|
|
985
|
+
val requiredKeys =
|
|
986
|
+
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("meetingURLVariants", "Array")))
|
|
987
|
+
if (requiredKeys) {
|
|
988
|
+
val meetingURLVariants =
|
|
989
|
+
data.getArray("meetingURLVariants")?.toArrayList() as? ArrayList<HashMap<String, String>>
|
|
990
|
+
val hlsMeetingUrlVariant = HmsHelper.getHMSHLSMeetingURLVariants(meetingURLVariants)
|
|
991
|
+
val config = HMSHLSConfig(hlsMeetingUrlVariant)
|
|
992
|
+
|
|
993
|
+
hmsSDK?.startHLSStreaming(
|
|
994
|
+
config,
|
|
995
|
+
object : HMSActionResultListener {
|
|
996
|
+
override fun onSuccess() {
|
|
997
|
+
callback?.resolve(emitHMSSuccess())
|
|
998
|
+
}
|
|
999
|
+
override fun onError(error: HMSException) {
|
|
1000
|
+
callback?.reject(error.code.toString(), error.message)
|
|
1001
|
+
self.emitHMSError(error)
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
)
|
|
1005
|
+
} else {
|
|
1006
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
1007
|
+
self.emitRequiredKeysError()
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
fun stopHLSStreaming(callback: Promise?) {
|
|
1012
|
+
hmsSDK?.stopHLSStreaming(
|
|
1013
|
+
null,
|
|
1014
|
+
object : HMSActionResultListener {
|
|
1015
|
+
override fun onSuccess() {
|
|
1016
|
+
callback?.resolve(emitHMSSuccess())
|
|
1017
|
+
}
|
|
1018
|
+
override fun onError(error: HMSException) {
|
|
1019
|
+
callback?.reject(error.code.toString(), error.message)
|
|
1020
|
+
self.emitHMSError(error)
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
)
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
fun resetVolume() {
|
|
1027
|
+
val remotePeers = hmsSDK?.getRemotePeers()
|
|
1028
|
+
|
|
1029
|
+
if (remotePeers != null) {
|
|
1030
|
+
for (peer in remotePeers) {
|
|
1031
|
+
val playbackAllowed = peer.audioTrack?.isPlaybackAllowed
|
|
1032
|
+
if (playbackAllowed !== null && playbackAllowed) {
|
|
1033
|
+
peer.audioTrack?.setVolume(10.0)
|
|
1034
|
+
}
|
|
1035
|
+
val auxTracks = peer.auxiliaryTracks
|
|
1036
|
+
|
|
1037
|
+
for (track in auxTracks) {
|
|
1038
|
+
if (track.type === HMSTrackType.AUDIO) {
|
|
1039
|
+
|
|
1040
|
+
(track as? HMSRemoteAudioTrack)?.setVolume(10.0)
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
899
1046
|
}
|