@100mslive/react-native-hms 0.8.0 → 0.8.4
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/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 +1 -2
- package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +249 -230
- package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +145 -13
- package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +56 -21
- package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +463 -247
- package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +15 -18
- package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
- package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +4 -10
- package/ios/HmsDecoder.swift +135 -35
- package/ios/HmsHelper.swift +103 -1
- package/ios/HmsManager.m +13 -9
- package/ios/HmsManager.swift +59 -24
- package/ios/HmsSDK.swift +322 -85
- 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/HMSChangeTrackStateRequest.js +3 -0
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/commonjs/classes/HMSConfig.js +3 -1
- package/lib/commonjs/classes/HMSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +27 -7
- 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 +32 -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 +28 -1
- package/lib/commonjs/classes/HMSLogger.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/HMSRemoteAudioTrack.js +19 -0
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRemotePeer.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 +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 +229 -125
- 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/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/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 +98 -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/HMSChangeTrackStateRequest.js +3 -0
- package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/module/classes/HMSConfig.js +3 -1
- package/lib/module/classes/HMSConfig.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +26 -7
- 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 +30 -1
- 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 +28 -1
- package/lib/module/classes/HMSLogger.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/HMSRemoteAudioTrack.js +16 -0
- package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSRemotePeer.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 +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 +227 -125
- 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/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/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 +7 -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/HMSChangeTrackStateRequest.d.ts +2 -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 +4 -0
- package/lib/typescript/classes/HMSLogger.d.ts +7 -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 +22 -13
- package/lib/typescript/classes/HMSServerRecordingState.d.ts +9 -0
- package/lib/typescript/classes/HMSTrack.d.ts +1 -1
- package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
- package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
- 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 +7 -0
- package/package.json +2 -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/HMSChangeTrackStateRequest.ts +7 -1
- package/src/classes/HMSConfig.ts +3 -1
- package/src/classes/HMSEncoder.ts +22 -2
- package/src/classes/HMSException.ts +33 -0
- package/src/classes/HMSHelper.ts +2 -2
- package/src/classes/HMSLocalAudioTrack.ts +29 -1
- package/src/classes/HMSLocalPeer.ts +4 -0
- package/src/classes/HMSLocalVideoTrack.ts +15 -0
- package/src/classes/HMSLogger.ts +14 -1
- 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/HMSRemoteAudioTrack.ts +16 -0
- package/src/classes/HMSRemotePeer.ts +1 -0
- package/src/classes/HMSRemoteVideoTrack.ts +16 -0
- package/src/classes/HMSRoom.ts +12 -0
- package/src/classes/HMSRtmpStreamingState.ts +11 -0
- package/src/classes/HMSSDK.tsx +170 -71
- package/src/classes/HMSServerRecordingState.ts +11 -0
- package/src/classes/HMSTrack.ts +2 -15
- package/src/classes/HMSTrackSettings.ts +3 -0
- package/src/classes/HMSVideoCodec.ts +4 -4
- 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 +7 -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
|
@@ -11,52 +11,135 @@ import live.hms.video.sdk.models.HMSConfig
|
|
|
11
11
|
import live.hms.video.sdk.models.enums.HMSPeerUpdate
|
|
12
12
|
import live.hms.video.sdk.models.enums.HMSRoomUpdate
|
|
13
13
|
import live.hms.video.sdk.models.enums.HMSTrackUpdate
|
|
14
|
-
import live.hms.video.sdk.models.role.HMSRole
|
|
15
14
|
import live.hms.video.sdk.models.trackchangerequest.HMSChangeTrackStateRequest
|
|
16
15
|
import live.hms.video.utils.HMSCoroutineScope
|
|
17
16
|
|
|
18
17
|
class HmsSDK(
|
|
18
|
+
data: ReadableMap?,
|
|
19
19
|
HmsDelegate: HmsModule,
|
|
20
20
|
sdkId: String,
|
|
21
21
|
reactApplicationContext: ReactApplicationContext
|
|
22
22
|
) {
|
|
23
23
|
var hmsSDK: HMSSDK? = null
|
|
24
24
|
private var recentRoleChangeRequest: HMSRoleChangeRequest? = null
|
|
25
|
-
private var
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
private var previewInProgress: Boolean = false
|
|
26
|
+
private var delegate: HmsModule = HmsDelegate
|
|
27
|
+
private var id: String = sdkId
|
|
28
|
+
private var self = this
|
|
28
29
|
|
|
29
30
|
init {
|
|
30
|
-
|
|
31
|
+
val trackSettings = HmsHelper.getTrackSettings(data)
|
|
32
|
+
if (trackSettings == null) {
|
|
33
|
+
this.hmsSDK = HMSSDK.Builder(reactApplicationContext).build()
|
|
34
|
+
} else {
|
|
35
|
+
this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setTrackSettings(trackSettings).build()
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
private fun emitCustomError(message: String) {
|
|
40
|
+
val data: WritableMap = Arguments.createMap()
|
|
41
|
+
val hmsError =
|
|
42
|
+
HMSException(
|
|
43
|
+
102,
|
|
44
|
+
message,
|
|
45
|
+
message,
|
|
46
|
+
message,
|
|
47
|
+
message
|
|
48
|
+
)
|
|
49
|
+
data.putString("event", "ON_ERROR")
|
|
50
|
+
data.putString("id", id)
|
|
51
|
+
data.putMap("error", HmsDecoder.getError(hmsError))
|
|
52
|
+
delegate.emitEvent("ON_ERROR", data)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
private fun emitRequiredKeysError() {
|
|
56
|
+
val data: WritableMap = Arguments.createMap()
|
|
57
|
+
val hmsError =
|
|
58
|
+
HMSException(
|
|
59
|
+
102,
|
|
60
|
+
"NOT_FOUND",
|
|
61
|
+
"SEND_ALL_REQUIRED_KEYS",
|
|
62
|
+
"REQUIRED_KEYS_NOT_FOUND",
|
|
63
|
+
"REQUIRED_KEYS_NOT_FOUND"
|
|
64
|
+
)
|
|
65
|
+
data.putString("event", "ON_ERROR")
|
|
66
|
+
data.putString("id", id)
|
|
67
|
+
data.putMap("error", HmsDecoder.getError(hmsError))
|
|
68
|
+
delegate.emitEvent("ON_ERROR", data)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
fun emitHMSError(error: HMSException) {
|
|
72
|
+
val data: WritableMap = Arguments.createMap()
|
|
73
|
+
data.putString("event", "ON_ERROR")
|
|
74
|
+
data.putString("id", id)
|
|
75
|
+
data.putMap("error", HmsDecoder.getError(error))
|
|
76
|
+
delegate.emitEvent("ON_ERROR", data)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
fun emitHMSSuccess(message: HMSMessage? = null): ReadableMap {
|
|
80
|
+
val hmsMessage =
|
|
81
|
+
if (message !== null) message.message else "function call executed successfully"
|
|
82
|
+
val data: WritableMap = Arguments.createMap()
|
|
83
|
+
data.putBoolean("success", true)
|
|
84
|
+
data.putString("message", hmsMessage)
|
|
85
|
+
return data
|
|
31
86
|
}
|
|
32
87
|
|
|
33
88
|
fun preview(credentials: ReadableMap) {
|
|
89
|
+
if(previewInProgress){
|
|
90
|
+
self.emitCustomError("PREVIEW_ALREADY_IN_PROGRESS")
|
|
91
|
+
return
|
|
92
|
+
}
|
|
34
93
|
val requiredKeys =
|
|
35
94
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
36
95
|
credentials,
|
|
37
96
|
arrayOf(Pair("username", "String"), Pair("authToken", "String"))
|
|
38
97
|
)
|
|
39
98
|
if (requiredKeys) {
|
|
99
|
+
previewInProgress = true
|
|
40
100
|
var config =
|
|
41
101
|
HMSConfig(
|
|
42
102
|
credentials.getString("username") as String,
|
|
43
|
-
credentials.getString("authToken") as String
|
|
103
|
+
credentials.getString("authToken") as String,
|
|
44
104
|
)
|
|
45
105
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
106
|
+
when {
|
|
107
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
108
|
+
credentials,
|
|
109
|
+
arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
|
|
110
|
+
) -> {
|
|
111
|
+
config =
|
|
112
|
+
HMSConfig(
|
|
113
|
+
credentials.getString("username") as String,
|
|
114
|
+
credentials.getString("authToken") as String,
|
|
115
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
116
|
+
metadata = credentials.getString("metadata") as String,
|
|
117
|
+
)
|
|
118
|
+
}
|
|
119
|
+
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
|
|
120
|
+
config =
|
|
121
|
+
HMSConfig(
|
|
122
|
+
credentials.getString("username") as String,
|
|
123
|
+
credentials.getString("authToken") as String,
|
|
124
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
125
|
+
)
|
|
126
|
+
}
|
|
127
|
+
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
|
|
128
|
+
config =
|
|
129
|
+
HMSConfig(
|
|
130
|
+
credentials.getString("username") as String,
|
|
131
|
+
credentials.getString("authToken") as String,
|
|
132
|
+
metadata = credentials.getString("metadata") as String,
|
|
133
|
+
)
|
|
134
|
+
}
|
|
53
135
|
}
|
|
54
136
|
|
|
55
137
|
hmsSDK?.preview(
|
|
56
138
|
config,
|
|
57
139
|
object : HMSPreviewListener {
|
|
58
140
|
override fun onError(error: HMSException) {
|
|
59
|
-
|
|
141
|
+
self.emitHMSError(error)
|
|
142
|
+
previewInProgress = false
|
|
60
143
|
}
|
|
61
144
|
|
|
62
145
|
override fun onPreview(room: HMSRoom, localTracks: Array<HMSTrack>) {
|
|
@@ -70,26 +153,20 @@ class HmsSDK(
|
|
|
70
153
|
data.putMap("localPeer", localPeerData)
|
|
71
154
|
data.putString("id", id)
|
|
72
155
|
delegate.emitEvent("ON_PREVIEW", data)
|
|
156
|
+
previewInProgress = false
|
|
73
157
|
}
|
|
74
158
|
}
|
|
75
159
|
)
|
|
76
160
|
} 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
|
-
)
|
|
161
|
+
self.emitRequiredKeysError()
|
|
89
162
|
}
|
|
90
163
|
}
|
|
91
164
|
|
|
92
165
|
fun join(credentials: ReadableMap) {
|
|
166
|
+
if(previewInProgress){
|
|
167
|
+
self.emitCustomError("PREVIEW_IS_IN_PROGRESS")
|
|
168
|
+
return
|
|
169
|
+
}
|
|
93
170
|
val requiredKeys =
|
|
94
171
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
95
172
|
credentials,
|
|
@@ -102,13 +179,35 @@ class HmsSDK(
|
|
|
102
179
|
credentials.getString("authToken") as String
|
|
103
180
|
)
|
|
104
181
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
182
|
+
when {
|
|
183
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
184
|
+
credentials,
|
|
185
|
+
arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
|
|
186
|
+
) -> {
|
|
187
|
+
config =
|
|
188
|
+
HMSConfig(
|
|
189
|
+
credentials.getString("username") as String,
|
|
190
|
+
credentials.getString("authToken") as String,
|
|
191
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
192
|
+
metadata = credentials.getString("metadata") as String,
|
|
193
|
+
)
|
|
194
|
+
}
|
|
195
|
+
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
|
|
196
|
+
config =
|
|
197
|
+
HMSConfig(
|
|
198
|
+
credentials.getString("username") as String,
|
|
199
|
+
credentials.getString("authToken") as String,
|
|
200
|
+
initEndpoint = credentials.getString("endpoint") as String,
|
|
201
|
+
)
|
|
202
|
+
}
|
|
203
|
+
HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
|
|
204
|
+
config =
|
|
205
|
+
HMSConfig(
|
|
206
|
+
credentials.getString("username") as String,
|
|
207
|
+
credentials.getString("authToken") as String,
|
|
208
|
+
metadata = credentials.getString("metadata") as String,
|
|
209
|
+
)
|
|
210
|
+
}
|
|
112
211
|
}
|
|
113
212
|
|
|
114
213
|
HMSCoroutineScope.launch {
|
|
@@ -116,21 +215,21 @@ class HmsSDK(
|
|
|
116
215
|
hmsSDK?.join(
|
|
117
216
|
config,
|
|
118
217
|
object : HMSUpdateListener {
|
|
119
|
-
override fun onChangeTrackStateRequest(
|
|
218
|
+
override fun onChangeTrackStateRequest(details: HMSChangeTrackStateRequest) {
|
|
120
219
|
val decodedChangeTrackStateRequest =
|
|
121
|
-
HmsDecoder.getHmsChangeTrackStateRequest(
|
|
220
|
+
HmsDecoder.getHmsChangeTrackStateRequest(details, id)
|
|
122
221
|
delegate.emitEvent(
|
|
123
222
|
"ON_CHANGE_TRACK_STATE_REQUEST",
|
|
124
223
|
decodedChangeTrackStateRequest
|
|
125
224
|
)
|
|
126
|
-
changeTrackStateRequest = request
|
|
127
225
|
}
|
|
128
226
|
|
|
129
227
|
override fun onRemovedFromRoom(notification: HMSRemovedFromRoom) {
|
|
130
228
|
super.onRemovedFromRoom(notification)
|
|
131
229
|
|
|
132
230
|
val data: WritableMap = Arguments.createMap()
|
|
133
|
-
val requestedBy =
|
|
231
|
+
val requestedBy =
|
|
232
|
+
HmsDecoder.getHmsRemotePeer(notification.peerWhoRemoved as HMSRemotePeer?)
|
|
134
233
|
val roomEnded = notification.roomWasEnded
|
|
135
234
|
val reason = notification.reason
|
|
136
235
|
|
|
@@ -143,7 +242,7 @@ class HmsSDK(
|
|
|
143
242
|
}
|
|
144
243
|
|
|
145
244
|
override fun onError(error: HMSException) {
|
|
146
|
-
|
|
245
|
+
self.emitHMSError(error)
|
|
147
246
|
}
|
|
148
247
|
|
|
149
248
|
override fun onJoin(room: HMSRoom) {
|
|
@@ -162,17 +261,18 @@ class HmsSDK(
|
|
|
162
261
|
delegate.emitEvent("ON_JOIN", data)
|
|
163
262
|
}
|
|
164
263
|
|
|
165
|
-
override fun onPeerUpdate(type: HMSPeerUpdate,
|
|
166
|
-
|
|
167
|
-
val type = type.name
|
|
264
|
+
override fun onPeerUpdate(type: HMSPeerUpdate, peer: HMSPeer) {
|
|
265
|
+
val updateType = type.name
|
|
168
266
|
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
169
267
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
170
268
|
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
269
|
+
val hmsPeer = HmsDecoder.getHmsPeer(peer)
|
|
171
270
|
|
|
172
271
|
val data: WritableMap = Arguments.createMap()
|
|
173
272
|
|
|
273
|
+
data.putMap("peer", hmsPeer)
|
|
174
274
|
data.putMap("room", roomData)
|
|
175
|
-
data.putString("type",
|
|
275
|
+
data.putString("type", updateType)
|
|
176
276
|
data.putMap("localPeer", localPeerData)
|
|
177
277
|
data.putArray("remotePeers", remotePeerData)
|
|
178
278
|
data.putString("id", id)
|
|
@@ -180,14 +280,14 @@ class HmsSDK(
|
|
|
180
280
|
}
|
|
181
281
|
|
|
182
282
|
override fun onRoomUpdate(type: HMSRoomUpdate, hmsRoom: HMSRoom) {
|
|
183
|
-
val
|
|
283
|
+
val updateType = type.name
|
|
184
284
|
val roomData = HmsDecoder.getHmsRoom(hmsRoom)
|
|
185
285
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
186
286
|
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
187
287
|
|
|
188
288
|
val data: WritableMap = Arguments.createMap()
|
|
189
289
|
|
|
190
|
-
data.putString("type",
|
|
290
|
+
data.putString("type", updateType)
|
|
191
291
|
data.putMap("room", roomData)
|
|
192
292
|
data.putMap("localPeer", localPeerData)
|
|
193
293
|
data.putArray("remotePeers", remotePeerData)
|
|
@@ -196,15 +296,19 @@ class HmsSDK(
|
|
|
196
296
|
}
|
|
197
297
|
|
|
198
298
|
override fun onTrackUpdate(type: HMSTrackUpdate, track: HMSTrack, peer: HMSPeer) {
|
|
199
|
-
val
|
|
299
|
+
val updateType = type.name
|
|
200
300
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
201
301
|
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
202
302
|
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
303
|
+
val hmsPeer = HmsDecoder.getHmsPeer(peer)
|
|
304
|
+
val hmsTrack = HmsDecoder.getHmsTrack(track)
|
|
203
305
|
|
|
204
306
|
val data: WritableMap = Arguments.createMap()
|
|
205
307
|
|
|
308
|
+
data.putMap("peer", hmsPeer)
|
|
309
|
+
data.putMap("track", hmsTrack)
|
|
206
310
|
data.putMap("room", roomData)
|
|
207
|
-
data.putString("type",
|
|
311
|
+
data.putString("type", updateType)
|
|
208
312
|
data.putMap("localPeer", localPeerData)
|
|
209
313
|
data.putArray("remotePeers", remotePeerData)
|
|
210
314
|
data.putString("id", id)
|
|
@@ -246,11 +350,7 @@ class HmsSDK(
|
|
|
246
350
|
}
|
|
247
351
|
)
|
|
248
352
|
} 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)
|
|
353
|
+
self.emitHMSError(e)
|
|
254
354
|
}
|
|
255
355
|
|
|
256
356
|
hmsSDK?.addAudioObserver(
|
|
@@ -263,9 +363,9 @@ class HmsSDK(
|
|
|
263
363
|
val peers: WritableArray = Arguments.createArray()
|
|
264
364
|
for (speaker in speakers) {
|
|
265
365
|
val speakerArray: WritableMap = Arguments.createMap()
|
|
266
|
-
speakerArray.putMap("peer", HmsDecoder.getHmsPeer(speaker
|
|
267
|
-
speakerArray.putInt("level", speaker
|
|
268
|
-
speakerArray.putMap("track", HmsDecoder.getHmsTrack(speaker
|
|
366
|
+
speakerArray.putMap("peer", HmsDecoder.getHmsPeer(speaker.peer))
|
|
367
|
+
speakerArray.putInt("level", speaker.level)
|
|
368
|
+
speakerArray.putMap("track", HmsDecoder.getHmsTrack(speaker.hmsTrack))
|
|
269
369
|
peers.pushMap(speakerArray)
|
|
270
370
|
}
|
|
271
371
|
data.putArray("peers", peers)
|
|
@@ -276,24 +376,26 @@ class HmsSDK(
|
|
|
276
376
|
)
|
|
277
377
|
}
|
|
278
378
|
} 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
|
-
)
|
|
379
|
+
self.emitRequiredKeysError()
|
|
291
380
|
}
|
|
292
381
|
}
|
|
293
382
|
|
|
294
383
|
fun setLocalMute(data: ReadableMap) {
|
|
295
384
|
val isMute = data.getBoolean("isMute")
|
|
296
385
|
hmsSDK?.getLocalPeer()?.audioTrack?.setMute(isMute)
|
|
386
|
+
val type = if (isMute) "TRACK_MUTED" else "TRACK_UNMUTED"
|
|
387
|
+
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
388
|
+
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
389
|
+
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
390
|
+
|
|
391
|
+
val map: WritableMap = Arguments.createMap()
|
|
392
|
+
|
|
393
|
+
map.putMap("room", roomData)
|
|
394
|
+
map.putString("type", type)
|
|
395
|
+
map.putMap("localPeer", localPeerData)
|
|
396
|
+
map.putArray("remotePeers", remotePeerData)
|
|
397
|
+
map.putString("id", id)
|
|
398
|
+
delegate.emitEvent("ON_TRACK_UPDATE", map)
|
|
297
399
|
}
|
|
298
400
|
|
|
299
401
|
fun setLocalVideoMute(data: ReadableMap) {
|
|
@@ -302,24 +404,27 @@ class HmsSDK(
|
|
|
302
404
|
}
|
|
303
405
|
|
|
304
406
|
fun switchCamera() {
|
|
305
|
-
if (hmsSDK?.getLocalPeer()?.videoTrack?.isMute
|
|
407
|
+
if (hmsSDK?.getLocalPeer()?.videoTrack?.isMute == false) {
|
|
306
408
|
HMSCoroutineScope.launch { hmsSDK?.getLocalPeer()?.videoTrack?.switchCamera() }
|
|
307
409
|
}
|
|
308
410
|
}
|
|
309
411
|
|
|
310
412
|
fun leave(callback: Promise?) {
|
|
311
|
-
hmsSDK?.leave(
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
413
|
+
hmsSDK?.leave(
|
|
414
|
+
object : HMSActionResultListener {
|
|
415
|
+
override fun onSuccess() {
|
|
416
|
+
callback?.resolve(emitHMSSuccess())
|
|
417
|
+
}
|
|
315
418
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
419
|
+
override fun onError(error: HMSException) {
|
|
420
|
+
callback?.reject(error.code.toString(), error.message)
|
|
421
|
+
self.emitHMSError(error)
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
)
|
|
320
425
|
}
|
|
321
426
|
|
|
322
|
-
fun sendBroadcastMessage(data: ReadableMap) {
|
|
427
|
+
fun sendBroadcastMessage(data: ReadableMap, callback: Promise?) {
|
|
323
428
|
val requiredKeys =
|
|
324
429
|
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("message", "String")))
|
|
325
430
|
if (requiredKeys) {
|
|
@@ -331,27 +436,22 @@ class HmsSDK(
|
|
|
331
436
|
data.getString("message") as String,
|
|
332
437
|
type as String,
|
|
333
438
|
object : HMSMessageResultListener {
|
|
334
|
-
override fun onError(error: HMSException) {
|
|
335
|
-
|
|
439
|
+
override fun onError(error: HMSException) {
|
|
440
|
+
self.emitHMSError(error)
|
|
441
|
+
callback?.reject(error.code.toString(), error.message)
|
|
442
|
+
}
|
|
443
|
+
override fun onSuccess(hmsMessage: HMSMessage) {
|
|
444
|
+
callback?.resolve(emitHMSSuccess(hmsMessage))
|
|
445
|
+
}
|
|
336
446
|
}
|
|
337
447
|
)
|
|
338
448
|
} else {
|
|
339
|
-
|
|
340
|
-
|
|
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
|
-
)
|
|
449
|
+
self.emitRequiredKeysError()
|
|
450
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
351
451
|
}
|
|
352
452
|
}
|
|
353
453
|
|
|
354
|
-
fun sendGroupMessage(data: ReadableMap) {
|
|
454
|
+
fun sendGroupMessage(data: ReadableMap, callback: Promise?) {
|
|
355
455
|
val requiredKeys =
|
|
356
456
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
357
457
|
data,
|
|
@@ -373,28 +473,23 @@ class HmsSDK(
|
|
|
373
473
|
type as String,
|
|
374
474
|
encodedTargetedRoles,
|
|
375
475
|
object : HMSMessageResultListener {
|
|
376
|
-
override fun onError(error: HMSException) {
|
|
377
|
-
|
|
476
|
+
override fun onError(error: HMSException) {
|
|
477
|
+
self.emitHMSError(error)
|
|
478
|
+
callback?.reject(error.code.toString(), error.message)
|
|
479
|
+
}
|
|
480
|
+
override fun onSuccess(hmsMessage: HMSMessage) {
|
|
481
|
+
callback?.resolve(emitHMSSuccess(hmsMessage))
|
|
482
|
+
}
|
|
378
483
|
}
|
|
379
484
|
)
|
|
380
485
|
}
|
|
381
486
|
} else {
|
|
382
|
-
|
|
383
|
-
|
|
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
|
-
)
|
|
487
|
+
self.emitRequiredKeysError()
|
|
488
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
394
489
|
}
|
|
395
490
|
}
|
|
396
491
|
|
|
397
|
-
fun sendDirectMessage(data: ReadableMap) {
|
|
492
|
+
fun sendDirectMessage(data: ReadableMap, callback: Promise?) {
|
|
398
493
|
val requiredKeys =
|
|
399
494
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
400
495
|
data,
|
|
@@ -415,28 +510,23 @@ class HmsSDK(
|
|
|
415
510
|
type as String,
|
|
416
511
|
peer,
|
|
417
512
|
object : HMSMessageResultListener {
|
|
418
|
-
override fun onError(error: HMSException) {
|
|
419
|
-
|
|
513
|
+
override fun onError(error: HMSException) {
|
|
514
|
+
self.emitHMSError(error)
|
|
515
|
+
callback?.reject(error.code.toString(), error.message)
|
|
516
|
+
}
|
|
517
|
+
override fun onSuccess(hmsMessage: HMSMessage) {
|
|
518
|
+
callback?.resolve(emitHMSSuccess(hmsMessage))
|
|
519
|
+
}
|
|
420
520
|
}
|
|
421
521
|
)
|
|
422
522
|
}
|
|
423
523
|
} else {
|
|
424
|
-
|
|
425
|
-
|
|
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
|
-
)
|
|
524
|
+
self.emitRequiredKeysError()
|
|
525
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
436
526
|
}
|
|
437
527
|
}
|
|
438
528
|
|
|
439
|
-
fun changeRole(data: ReadableMap) {
|
|
529
|
+
fun changeRole(data: ReadableMap, callback: Promise?) {
|
|
440
530
|
val requiredKeys =
|
|
441
531
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
442
532
|
data,
|
|
@@ -453,33 +543,28 @@ class HmsSDK(
|
|
|
453
543
|
|
|
454
544
|
if (hmsRole != null && hmsPeer != null) {
|
|
455
545
|
hmsSDK?.changeRole(
|
|
456
|
-
hmsPeer
|
|
546
|
+
hmsPeer,
|
|
457
547
|
hmsRole,
|
|
458
548
|
force,
|
|
459
549
|
object : HMSActionResultListener {
|
|
460
|
-
override fun onSuccess() {
|
|
461
|
-
|
|
550
|
+
override fun onSuccess() {
|
|
551
|
+
callback?.resolve(emitHMSSuccess())
|
|
552
|
+
}
|
|
553
|
+
override fun onError(error: HMSException) {
|
|
554
|
+
self.emitHMSError(error)
|
|
555
|
+
callback?.reject(error.code.toString(), error.message)
|
|
556
|
+
}
|
|
462
557
|
}
|
|
463
558
|
)
|
|
464
559
|
}
|
|
465
560
|
}
|
|
466
561
|
} else {
|
|
467
|
-
|
|
468
|
-
|
|
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
|
-
)
|
|
562
|
+
self.emitRequiredKeysError()
|
|
563
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
479
564
|
}
|
|
480
565
|
}
|
|
481
566
|
|
|
482
|
-
fun changeTrackState(data: ReadableMap) {
|
|
567
|
+
fun changeTrackState(data: ReadableMap, callback: Promise?) {
|
|
483
568
|
val requiredKeys =
|
|
484
569
|
HmsHelper.areAllRequiredKeysAvailable(
|
|
485
570
|
data,
|
|
@@ -495,57 +580,60 @@ class HmsSDK(
|
|
|
495
580
|
track,
|
|
496
581
|
mute,
|
|
497
582
|
object : HMSActionResultListener {
|
|
498
|
-
override fun onSuccess() {
|
|
499
|
-
|
|
583
|
+
override fun onSuccess() {
|
|
584
|
+
callback?.resolve(emitHMSSuccess())
|
|
585
|
+
}
|
|
586
|
+
override fun onError(error: HMSException) {
|
|
587
|
+
self.emitHMSError(error)
|
|
588
|
+
callback?.reject(error.code.toString(), error.message)
|
|
589
|
+
}
|
|
500
590
|
}
|
|
501
591
|
)
|
|
502
592
|
}
|
|
503
593
|
} else {
|
|
504
|
-
|
|
505
|
-
|
|
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
|
-
)
|
|
594
|
+
self.emitRequiredKeysError()
|
|
595
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
516
596
|
}
|
|
517
597
|
}
|
|
518
598
|
|
|
519
|
-
fun changeTrackStateRoles(data: ReadableMap) {
|
|
599
|
+
fun changeTrackStateRoles(data: ReadableMap, callback: Promise?) {
|
|
520
600
|
val requiredKeys =
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
601
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
602
|
+
data,
|
|
603
|
+
arrayOf(
|
|
604
|
+
Pair("source", "String"),
|
|
605
|
+
Pair("mute", "Boolean"),
|
|
606
|
+
Pair("type", "String"),
|
|
607
|
+
Pair("roles", "Array")
|
|
608
|
+
)
|
|
609
|
+
)
|
|
525
610
|
if (requiredKeys) {
|
|
526
611
|
val mute: Boolean = data.getBoolean("mute")
|
|
527
|
-
val type =
|
|
612
|
+
val type =
|
|
613
|
+
if (data.getString("type") == HMSTrackType.AUDIO.toString()) HMSTrackType.AUDIO
|
|
614
|
+
else HMSTrackType.VIDEO
|
|
528
615
|
val source = data.getString("source")
|
|
529
616
|
val targetedRoles = data.getArray("roles")?.toArrayList() as? ArrayList<String>
|
|
530
617
|
val roles = hmsSDK?.getRoles()
|
|
531
618
|
val encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles)
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
)
|
|
547
|
-
)
|
|
619
|
+
hmsSDK?.changeTrackState(
|
|
620
|
+
mute,
|
|
621
|
+
type,
|
|
622
|
+
source,
|
|
623
|
+
encodedTargetedRoles,
|
|
624
|
+
object : HMSActionResultListener {
|
|
625
|
+
override fun onSuccess() {
|
|
626
|
+
callback?.resolve(emitHMSSuccess())
|
|
627
|
+
}
|
|
628
|
+
override fun onError(error: HMSException) {
|
|
629
|
+
self.emitHMSError(error)
|
|
630
|
+
callback?.reject(error.code.toString(), error.message)
|
|
631
|
+
}
|
|
632
|
+
}
|
|
548
633
|
)
|
|
634
|
+
} else {
|
|
635
|
+
self.emitRequiredKeysError()
|
|
636
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
549
637
|
}
|
|
550
638
|
}
|
|
551
639
|
|
|
@@ -570,36 +658,49 @@ class HmsSDK(
|
|
|
570
658
|
callback?.resolve(mute)
|
|
571
659
|
}
|
|
572
660
|
} else {
|
|
573
|
-
callback?.reject("
|
|
661
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
574
662
|
}
|
|
575
663
|
}
|
|
576
664
|
|
|
577
|
-
fun removePeer(data: ReadableMap) {
|
|
578
|
-
val
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
reason = ""
|
|
583
|
-
}
|
|
665
|
+
fun removePeer(data: ReadableMap, callback: Promise?) {
|
|
666
|
+
val requiredKeys =
|
|
667
|
+
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("peerId", "String")))
|
|
668
|
+
if (requiredKeys) {
|
|
669
|
+
val peerId = data.getString("peerId")
|
|
670
|
+
var reason = data.getString("reason")
|
|
584
671
|
|
|
585
|
-
|
|
672
|
+
if (reason == null) {
|
|
673
|
+
reason = ""
|
|
674
|
+
}
|
|
586
675
|
|
|
587
|
-
|
|
676
|
+
val peers = hmsSDK?.getRemotePeers()
|
|
588
677
|
|
|
589
|
-
|
|
590
|
-
hmsSDK?.removePeerRequest(
|
|
591
|
-
peer,
|
|
592
|
-
reason,
|
|
593
|
-
object : HMSActionResultListener {
|
|
594
|
-
override fun onSuccess() {}
|
|
678
|
+
val peer = HmsHelper.getRemotePeerFromPeerId(peerId, peers)
|
|
595
679
|
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
680
|
+
if (peer != null) {
|
|
681
|
+
hmsSDK?.removePeerRequest(
|
|
682
|
+
peer,
|
|
683
|
+
reason,
|
|
684
|
+
object : HMSActionResultListener {
|
|
685
|
+
override fun onSuccess() {
|
|
686
|
+
callback?.resolve(emitHMSSuccess())
|
|
687
|
+
}
|
|
688
|
+
override fun onError(error: HMSException) {
|
|
689
|
+
self.emitHMSError(error)
|
|
690
|
+
callback?.reject(error.code.toString(), error.message)
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
)
|
|
694
|
+
} else {
|
|
695
|
+
callback?.reject("101", "PEER_NOT_FOUND")
|
|
696
|
+
}
|
|
697
|
+
} else {
|
|
698
|
+
self.emitRequiredKeysError()
|
|
699
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
599
700
|
}
|
|
600
701
|
}
|
|
601
702
|
|
|
602
|
-
fun endRoom(data: ReadableMap) {
|
|
703
|
+
fun endRoom(data: ReadableMap, callback: Promise?) {
|
|
603
704
|
val lock = data.getBoolean("lock")
|
|
604
705
|
var reason = data.getString("reason")
|
|
605
706
|
if (reason == null) {
|
|
@@ -610,36 +711,39 @@ class HmsSDK(
|
|
|
610
711
|
reason,
|
|
611
712
|
lock,
|
|
612
713
|
object : HMSActionResultListener {
|
|
613
|
-
override fun onSuccess() {
|
|
614
|
-
|
|
615
|
-
|
|
714
|
+
override fun onSuccess() {
|
|
715
|
+
callback?.resolve(emitHMSSuccess())
|
|
716
|
+
}
|
|
717
|
+
override fun onError(error: HMSException) {
|
|
718
|
+
self.emitHMSError(error)
|
|
719
|
+
callback?.reject(error.code.toString(), error.message)
|
|
720
|
+
}
|
|
616
721
|
}
|
|
617
722
|
)
|
|
618
723
|
}
|
|
619
724
|
|
|
620
|
-
fun acceptRoleChange() {
|
|
725
|
+
fun acceptRoleChange(callback: Promise?) {
|
|
621
726
|
if (recentRoleChangeRequest !== null) {
|
|
727
|
+
|
|
622
728
|
hmsSDK?.acceptChangeRole(
|
|
623
729
|
recentRoleChangeRequest!!,
|
|
624
730
|
object : HMSActionResultListener {
|
|
625
731
|
override fun onSuccess() {
|
|
626
|
-
|
|
732
|
+
callback?.resolve(emitHMSSuccess())
|
|
627
733
|
}
|
|
628
|
-
|
|
629
734
|
override fun onError(error: HMSException) {
|
|
630
|
-
|
|
735
|
+
self.emitHMSError(error)
|
|
736
|
+
callback?.reject(error.code.toString(), error.message)
|
|
631
737
|
}
|
|
632
738
|
}
|
|
633
739
|
)
|
|
740
|
+
|
|
741
|
+
recentRoleChangeRequest = null
|
|
634
742
|
}
|
|
635
743
|
}
|
|
636
744
|
|
|
637
745
|
fun muteAllPeersAudio(data: ReadableMap) {
|
|
638
|
-
val requiredKeys =
|
|
639
|
-
HmsHelper.areAllRequiredKeysAvailable(
|
|
640
|
-
data,
|
|
641
|
-
arrayOf(Pair("mute", "Boolean"))
|
|
642
|
-
)
|
|
746
|
+
val requiredKeys = HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("mute", "Boolean")))
|
|
643
747
|
if (requiredKeys) {
|
|
644
748
|
val mute = data.getBoolean("mute")
|
|
645
749
|
val peers = hmsSDK?.getRemotePeers()
|
|
@@ -647,33 +751,20 @@ class HmsSDK(
|
|
|
647
751
|
for (remotePeer in peers) {
|
|
648
752
|
val peerId = remotePeer.peerID
|
|
649
753
|
val peer = HmsHelper.getRemotePeerFromPeerId(peerId, peers)
|
|
650
|
-
|
|
651
|
-
peer?.audioTrack?.isPlaybackAllowed = !mute
|
|
652
|
-
}
|
|
754
|
+
peer?.audioTrack?.isPlaybackAllowed = !mute
|
|
653
755
|
}
|
|
654
756
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
655
757
|
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
656
758
|
|
|
657
|
-
val
|
|
759
|
+
val map: WritableMap = Arguments.createMap()
|
|
658
760
|
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
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)
|
|
663
765
|
}
|
|
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
|
-
)
|
|
766
|
+
} else {
|
|
767
|
+
this.emitRequiredKeysError()
|
|
677
768
|
}
|
|
678
769
|
}
|
|
679
770
|
|
|
@@ -695,18 +786,7 @@ class HmsSDK(
|
|
|
695
786
|
remoteVideoTrack.isPlaybackAllowed = playbackAllowed
|
|
696
787
|
}
|
|
697
788
|
} 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
|
-
)
|
|
789
|
+
this.emitRequiredKeysError()
|
|
710
790
|
}
|
|
711
791
|
}
|
|
712
792
|
|
|
@@ -718,14 +798,18 @@ class HmsSDK(
|
|
|
718
798
|
val remotePeers = hmsSDK?.getRemotePeers()
|
|
719
799
|
val remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
|
|
720
800
|
val remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
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
|
+
}
|
|
729
813
|
}
|
|
730
814
|
} else {
|
|
731
815
|
callback?.reject("101", "TRACK_ID_NOT_FOUND")
|
|
@@ -734,7 +818,139 @@ class HmsSDK(
|
|
|
734
818
|
|
|
735
819
|
fun getRoom(callback: Promise?) {
|
|
736
820
|
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
737
|
-
|
|
738
821
|
callback?.resolve(roomData)
|
|
739
822
|
}
|
|
823
|
+
|
|
824
|
+
fun setVolume(data: ReadableMap) {
|
|
825
|
+
val requiredKeys =
|
|
826
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
827
|
+
data,
|
|
828
|
+
arrayOf(Pair("trackId", "String"), Pair("volume", "Float"))
|
|
829
|
+
)
|
|
830
|
+
|
|
831
|
+
if (requiredKeys) {
|
|
832
|
+
val trackId = data.getString("trackId")
|
|
833
|
+
val volume = data.getDouble("volume")
|
|
834
|
+
|
|
835
|
+
val remotePeers = hmsSDK?.getRemotePeers()
|
|
836
|
+
|
|
837
|
+
if (remotePeers != null) {
|
|
838
|
+
for (peer in remotePeers) {
|
|
839
|
+
val audioTrackId = peer.audioTrack?.trackId
|
|
840
|
+
|
|
841
|
+
if (audioTrackId == trackId) {
|
|
842
|
+
peer.audioTrack?.setVolume(volume)
|
|
843
|
+
return
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
for (auxTrack in peer.auxiliaryTracks) {
|
|
847
|
+
if (auxTrack.trackId == trackId && auxTrack.type == HMSTrackType.AUDIO) {
|
|
848
|
+
val trackExtracted = auxTrack as? HMSRemoteAudioTrack
|
|
849
|
+
|
|
850
|
+
if (trackExtracted != null) {
|
|
851
|
+
trackExtracted.setVolume(volume)
|
|
852
|
+
return
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
} else {
|
|
859
|
+
this.emitRequiredKeysError()
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
fun getVolume(data: ReadableMap, callback: Promise?) {
|
|
864
|
+
val requiredKeys =
|
|
865
|
+
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("trackId", "String")))
|
|
866
|
+
|
|
867
|
+
if (requiredKeys) {
|
|
868
|
+
val trackId = data.getString("trackId")
|
|
869
|
+
|
|
870
|
+
val localPeer = hmsSDK?.getLocalPeer()
|
|
871
|
+
|
|
872
|
+
if (localPeer?.audioTrack?.trackId == trackId) {
|
|
873
|
+
val volume = localPeer?.audioTrack?.volume
|
|
874
|
+
callback?.resolve(volume)
|
|
875
|
+
return
|
|
876
|
+
}
|
|
877
|
+
callback?.reject("101", "TRACK_IDS_DO_NOT_MATCH")
|
|
878
|
+
} else {
|
|
879
|
+
callback?.reject("101", "TRACK_NOT_FOUND")
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
fun changeMetadata(data: ReadableMap, callback: Promise?) {
|
|
884
|
+
val requiredKeys =
|
|
885
|
+
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("metadata", "String")))
|
|
886
|
+
|
|
887
|
+
if (requiredKeys) {
|
|
888
|
+
val metadata = data.getString("metadata")
|
|
889
|
+
|
|
890
|
+
if (metadata != null) {
|
|
891
|
+
hmsSDK?.changeMetadata(
|
|
892
|
+
metadata,
|
|
893
|
+
object : HMSActionResultListener {
|
|
894
|
+
override fun onSuccess() {
|
|
895
|
+
callback?.resolve(emitHMSSuccess())
|
|
896
|
+
}
|
|
897
|
+
override fun onError(error: HMSException) {
|
|
898
|
+
callback?.reject(error.code.toString(), error.message)
|
|
899
|
+
self.emitHMSError(error)
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
)
|
|
903
|
+
}
|
|
904
|
+
} else {
|
|
905
|
+
self.emitRequiredKeysError()
|
|
906
|
+
}
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
fun startRTMPOrRecording(data: ReadableMap, callback: Promise?) {
|
|
910
|
+
val requiredKeys =
|
|
911
|
+
HmsHelper.areAllRequiredKeysAvailable(
|
|
912
|
+
data,
|
|
913
|
+
arrayOf(Pair("record", "Boolean"), Pair("meetingURL", "String"))
|
|
914
|
+
)
|
|
915
|
+
if (requiredKeys) {
|
|
916
|
+
val record = data.getBoolean("record")
|
|
917
|
+
val meetingURL = data.getString("meetingURL") as String
|
|
918
|
+
var rtmpURLs = data.getArray("rtmpURLs")
|
|
919
|
+
if (rtmpURLs == null) {
|
|
920
|
+
rtmpURLs = Arguments.createArray()
|
|
921
|
+
}
|
|
922
|
+
val rtmpURLsList = HmsHelper.getRtmpUrls(rtmpURLs)
|
|
923
|
+
val config = HMSRecordingConfig(meetingURL, rtmpURLsList, record)
|
|
924
|
+
|
|
925
|
+
hmsSDK?.startRtmpOrRecording(
|
|
926
|
+
config,
|
|
927
|
+
object : HMSActionResultListener {
|
|
928
|
+
override fun onSuccess() {
|
|
929
|
+
callback?.resolve(emitHMSSuccess())
|
|
930
|
+
}
|
|
931
|
+
override fun onError(error: HMSException) {
|
|
932
|
+
callback?.reject(error.code.toString(), error.message)
|
|
933
|
+
self.emitHMSError(error)
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
)
|
|
937
|
+
} else {
|
|
938
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
939
|
+
self.emitRequiredKeysError()
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
fun stopRtmpAndRecording(callback: Promise?) {
|
|
944
|
+
hmsSDK?.stopRtmpAndRecording(
|
|
945
|
+
object : HMSActionResultListener {
|
|
946
|
+
override fun onSuccess() {
|
|
947
|
+
callback?.resolve(emitHMSSuccess())
|
|
948
|
+
}
|
|
949
|
+
override fun onError(error: HMSException) {
|
|
950
|
+
callback?.reject(error.code.toString(), error.message)
|
|
951
|
+
self.emitHMSError(error)
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
)
|
|
955
|
+
}
|
|
740
956
|
}
|