@100mslive/react-native-hms 0.9.0 → 0.9.3
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 +242 -21
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- 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/.idea/gradle.xml +13 -0
- package/android/.idea/misc.xml +9 -0
- package/android/.idea/modules/android.iml +18 -0
- package/android/.idea/modules.xml +8 -0
- package/android/.idea/sonarlint/issuestore/f/0/f07866736216be0ee2aba49e392191aeae700a35 +0 -0
- package/android/.idea/sonarlint/issuestore/index.pb +3 -0
- package/android/.idea/vcs.xml +6 -0
- package/android/build.gradle +2 -2
- package/android/local.properties +8 -0
- package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +53 -4
- package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +138 -64
- package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +19 -5
- package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +133 -109
- package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +11 -0
- package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +3 -27
- package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +0 -2
- package/ios/HmsDecoder.swift +218 -137
- package/ios/HmsHelper.swift +51 -40
- package/ios/HmsManager.m +7 -1
- package/ios/HmsManager.swift +111 -68
- package/ios/HmsSDK.swift +345 -203
- package/ios/HmsView.swift +45 -31
- package/ios/VideoCollectionViewCell.swift +4 -4
- package/lib/commonjs/classes/HMSBrowserRecordingState.js +6 -0
- package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSConfig.js +3 -0
- package/lib/commonjs/classes/HMSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +196 -5
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSConfig.js +3 -0
- package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSRecordingConfig.js +23 -0
- package/lib/commonjs/classes/HMSHLSRecordingConfig.js.map +1 -0
- package/lib/commonjs/classes/HMSHLSRecordingState.js +29 -0
- package/lib/commonjs/classes/HMSHLSRecordingState.js.map +1 -0
- package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalAudioStats.js +26 -0
- package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -0
- package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalVideoStats.js +32 -0
- package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -0
- package/lib/commonjs/classes/HMSLogger.js +21 -21
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSMessage.js +4 -1
- package/lib/commonjs/classes/HMSMessage.js.map +1 -1
- package/lib/commonjs/classes/HMSMessageRecipient.js +26 -0
- package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -0
- package/lib/commonjs/classes/HMSMessageRecipientType.js +15 -0
- package/lib/commonjs/classes/HMSMessageRecipientType.js.map +1 -0
- package/lib/commonjs/classes/HMSNetworkQuality.js +20 -0
- package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -0
- package/lib/commonjs/classes/HMSPeer.js +3 -0
- package/lib/commonjs/classes/HMSPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPeerUpdate.js +2 -7
- package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSPermissions.js +2 -2
- package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
- package/lib/commonjs/classes/HMSRTCStats.js +38 -0
- package/lib/commonjs/classes/HMSRTCStats.js.map +1 -0
- package/lib/commonjs/classes/HMSRTCStatsReport.js +26 -0
- package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -0
- package/lib/commonjs/classes/HMSRemoteAudioStats.js +32 -0
- package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -0
- package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteVideoStats.js +38 -0
- package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -0
- package/lib/commonjs/classes/HMSRoom.js +6 -0
- package/lib/commonjs/classes/HMSRoom.js.map +1 -1
- package/lib/commonjs/classes/HMSRoomUpdate.js +1 -0
- package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpStreamingState.js +6 -0
- package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +381 -114
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSServerRecordingState.js +3 -0
- package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSUpdateListenerActions.js +5 -0
- package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/commonjs/index.js +154 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSBrowserRecordingState.js +6 -0
- package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
- package/lib/module/classes/HMSConfig.js +3 -0
- package/lib/module/classes/HMSConfig.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +187 -5
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSHLSConfig.js +3 -0
- package/lib/module/classes/HMSHLSConfig.js.map +1 -1
- package/lib/module/classes/HMSHLSRecordingConfig.js +14 -0
- package/lib/module/classes/HMSHLSRecordingConfig.js.map +1 -0
- package/lib/module/classes/HMSHLSRecordingState.js +20 -0
- package/lib/module/classes/HMSHLSRecordingState.js.map +1 -0
- package/lib/module/classes/HMSHLSVariant.js.map +1 -1
- package/lib/module/classes/HMSLocalAudioStats.js +17 -0
- package/lib/module/classes/HMSLocalAudioStats.js.map +1 -0
- package/lib/module/classes/HMSLocalPeer.js.map +1 -1
- package/lib/module/classes/HMSLocalVideoStats.js +23 -0
- package/lib/module/classes/HMSLocalVideoStats.js.map +1 -0
- package/lib/module/classes/HMSLogger.js +21 -21
- package/lib/module/classes/HMSLogger.js.map +1 -1
- package/lib/module/classes/HMSMessage.js +4 -1
- package/lib/module/classes/HMSMessage.js.map +1 -1
- package/lib/module/classes/HMSMessageRecipient.js +17 -0
- package/lib/module/classes/HMSMessageRecipient.js.map +1 -0
- package/lib/module/classes/HMSMessageRecipientType.js +8 -0
- package/lib/module/classes/HMSMessageRecipientType.js.map +1 -0
- package/lib/module/classes/HMSNetworkQuality.js +11 -0
- package/lib/module/classes/HMSNetworkQuality.js.map +1 -0
- package/lib/module/classes/HMSPeer.js +3 -0
- package/lib/module/classes/HMSPeer.js.map +1 -1
- package/lib/module/classes/HMSPeerUpdate.js +2 -7
- package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/module/classes/HMSPermissions.js +2 -2
- package/lib/module/classes/HMSPermissions.js.map +1 -1
- package/lib/module/classes/HMSRTCStats.js +29 -0
- package/lib/module/classes/HMSRTCStats.js.map +1 -0
- package/lib/module/classes/HMSRTCStatsReport.js +17 -0
- package/lib/module/classes/HMSRTCStatsReport.js.map +1 -0
- package/lib/module/classes/HMSRemoteAudioStats.js +23 -0
- package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -0
- package/lib/module/classes/HMSRemotePeer.js.map +1 -1
- package/lib/module/classes/HMSRemoteVideoStats.js +29 -0
- package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -0
- package/lib/module/classes/HMSRoom.js +6 -0
- package/lib/module/classes/HMSRoom.js.map +1 -1
- package/lib/module/classes/HMSRoomUpdate.js +1 -0
- package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/module/classes/HMSRtmpStreamingState.js +6 -0
- package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +368 -114
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSServerRecordingState.js +3 -0
- package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
- package/lib/module/classes/HMSUpdateListenerActions.js +5 -0
- package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/module/index.js +11 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +4 -0
- package/lib/typescript/classes/HMSConfig.d.ts +2 -0
- package/lib/typescript/classes/HMSEncoder.d.ts +25 -0
- package/lib/typescript/classes/HMSHLSConfig.d.ts +5 -2
- package/lib/typescript/classes/HMSHLSRecordingConfig.d.ts +8 -0
- package/lib/typescript/classes/HMSHLSRecordingState.d.ts +12 -0
- package/lib/typescript/classes/HMSHLSVariant.d.ts +8 -8
- package/lib/typescript/classes/HMSLocalAudioStats.d.ts +10 -0
- package/lib/typescript/classes/HMSLocalPeer.d.ts +2 -0
- package/lib/typescript/classes/HMSLocalVideoStats.d.ts +15 -0
- package/lib/typescript/classes/HMSMessage.d.ts +8 -4
- package/lib/typescript/classes/HMSMessageRecipient.d.ts +13 -0
- package/lib/typescript/classes/HMSMessageRecipientType.d.ts +5 -0
- package/lib/typescript/classes/HMSNetworkQuality.d.ts +6 -0
- package/lib/typescript/classes/HMSPeer.d.ts +3 -0
- package/lib/typescript/classes/HMSPeerUpdate.d.ts +3 -8
- package/lib/typescript/classes/HMSPermissions.d.ts +2 -2
- package/lib/typescript/classes/HMSRTCStats.d.ts +18 -0
- package/lib/typescript/classes/HMSRTCStatsReport.d.ts +11 -0
- package/lib/typescript/classes/HMSRemoteAudioStats.d.ts +14 -0
- package/lib/typescript/classes/HMSRemotePeer.d.ts +2 -0
- package/lib/typescript/classes/HMSRemoteVideoStats.d.ts +19 -0
- package/lib/typescript/classes/HMSRoom.d.ts +5 -0
- package/lib/typescript/classes/HMSRoomUpdate.d.ts +2 -1
- package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +4 -0
- package/lib/typescript/classes/HMSSDK.d.ts +310 -8
- package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -0
- package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +6 -1
- package/lib/typescript/index.d.ts +11 -0
- package/package.json +1 -1
- package/react-native-hms.podspec +1 -1
- package/src/classes/HMSBrowserRecordingState.ts +10 -1
- package/src/classes/HMSConfig.ts +3 -0
- package/src/classes/HMSEncoder.ts +208 -5
- package/src/classes/HMSHLSConfig.ts +8 -2
- package/src/classes/HMSHLSRecordingConfig.ts +9 -0
- package/src/classes/HMSHLSRecordingState.ts +18 -0
- package/src/classes/HMSHLSVariant.ts +8 -8
- package/src/classes/HMSLocalAudioStats.ts +15 -0
- package/src/classes/HMSLocalPeer.ts +2 -0
- package/src/classes/HMSLocalVideoStats.ts +23 -0
- package/src/classes/HMSLogger.ts +3 -3
- package/src/classes/HMSMessage.ts +11 -5
- package/src/classes/HMSMessageRecipient.ts +19 -0
- package/src/classes/HMSMessageRecipientType.ts +5 -0
- package/src/classes/HMSNetworkQuality.ts +7 -0
- package/src/classes/HMSPeer.ts +4 -2
- package/src/classes/HMSPeerUpdate.ts +2 -7
- package/src/classes/HMSPermissions.ts +3 -3
- package/src/classes/HMSRTCStats.ts +27 -0
- package/src/classes/HMSRTCStatsReport.ts +17 -0
- package/src/classes/HMSRemoteAudioStats.ts +21 -0
- package/src/classes/HMSRemotePeer.ts +2 -0
- package/src/classes/HMSRemoteVideoStats.ts +29 -0
- package/src/classes/HMSRoom.ts +7 -0
- package/src/classes/HMSRoomUpdate.ts +1 -0
- package/src/classes/HMSRtmpStreamingState.ts +10 -1
- package/src/classes/HMSSDK.tsx +530 -18
- package/src/classes/HMSServerRecordingState.ts +7 -1
- package/src/classes/HMSUpdateListenerActions.ts +5 -0
- package/src/index.ts +11 -0
|
@@ -17,6 +17,7 @@ import live.hms.video.sdk.models.enums.HMSRoomUpdate
|
|
|
17
17
|
import live.hms.video.sdk.models.enums.HMSTrackUpdate
|
|
18
18
|
import live.hms.video.sdk.models.trackchangerequest.HMSChangeTrackStateRequest
|
|
19
19
|
import live.hms.video.utils.HMSCoroutineScope
|
|
20
|
+
import live.hms.video.utils.HmsUtilities
|
|
20
21
|
|
|
21
22
|
class HmsSDK(
|
|
22
23
|
data: ReadableMap?,
|
|
@@ -25,8 +26,9 @@ class HmsSDK(
|
|
|
25
26
|
reactApplicationContext: ReactApplicationContext
|
|
26
27
|
) {
|
|
27
28
|
var hmsSDK: HMSSDK? = null
|
|
28
|
-
|
|
29
|
+
var screenshareCallback: Promise? = null
|
|
29
30
|
var delegate: HmsModule = HmsDelegate
|
|
31
|
+
private var recentRoleChangeRequest: HMSRoleChangeRequest? = null
|
|
30
32
|
private var context: ReactApplicationContext = reactApplicationContext
|
|
31
33
|
private var previewInProgress: Boolean = false
|
|
32
34
|
private var id: String = sdkId
|
|
@@ -95,42 +97,7 @@ class HmsSDK(
|
|
|
95
97
|
)
|
|
96
98
|
if (requiredKeys) {
|
|
97
99
|
previewInProgress = true
|
|
98
|
-
|
|
99
|
-
HMSConfig(
|
|
100
|
-
credentials.getString("username") as String,
|
|
101
|
-
credentials.getString("authToken") as String,
|
|
102
|
-
)
|
|
103
|
-
|
|
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
|
-
}
|
|
133
|
-
}
|
|
100
|
+
val config = HmsHelper.getHmsConfig(credentials)
|
|
134
101
|
|
|
135
102
|
hmsSDK?.preview(
|
|
136
103
|
config,
|
|
@@ -140,6 +107,50 @@ class HmsSDK(
|
|
|
140
107
|
previewInProgress = false
|
|
141
108
|
}
|
|
142
109
|
|
|
110
|
+
override fun onPeerUpdate(type: HMSPeerUpdate, peer: HMSPeer) {
|
|
111
|
+
if (type === HMSPeerUpdate.AUDIO_TOGGLED ||
|
|
112
|
+
type === HMSPeerUpdate.VIDEO_TOGGLED ||
|
|
113
|
+
type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER ||
|
|
114
|
+
type === HMSPeerUpdate.NO_DOMINANT_SPEAKER ||
|
|
115
|
+
type === HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER ||
|
|
116
|
+
type === HMSPeerUpdate.STARTED_SPEAKING ||
|
|
117
|
+
type === HMSPeerUpdate.STOPPED_SPEAKING
|
|
118
|
+
) {
|
|
119
|
+
return
|
|
120
|
+
}
|
|
121
|
+
val updateType = type.name
|
|
122
|
+
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
123
|
+
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
124
|
+
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
125
|
+
val hmsPeer = HmsDecoder.getHmsPeer(peer)
|
|
126
|
+
|
|
127
|
+
val data: WritableMap = Arguments.createMap()
|
|
128
|
+
|
|
129
|
+
data.putMap("peer", hmsPeer)
|
|
130
|
+
data.putMap("room", roomData)
|
|
131
|
+
data.putString("type", updateType)
|
|
132
|
+
data.putMap("localPeer", localPeerData)
|
|
133
|
+
data.putArray("remotePeers", remotePeerData)
|
|
134
|
+
data.putString("id", id)
|
|
135
|
+
delegate.emitEvent("ON_PEER_UPDATE", data)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
override fun onRoomUpdate(type: HMSRoomUpdate, hmsRoom: HMSRoom) {
|
|
139
|
+
val updateType = type.name
|
|
140
|
+
val roomData = HmsDecoder.getHmsRoom(hmsRoom)
|
|
141
|
+
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
142
|
+
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
143
|
+
|
|
144
|
+
val data: WritableMap = Arguments.createMap()
|
|
145
|
+
|
|
146
|
+
data.putString("type", updateType)
|
|
147
|
+
data.putMap("room", roomData)
|
|
148
|
+
data.putMap("localPeer", localPeerData)
|
|
149
|
+
data.putArray("remotePeers", remotePeerData)
|
|
150
|
+
data.putString("id", id)
|
|
151
|
+
delegate.emitEvent("ON_ROOM_UPDATE", data)
|
|
152
|
+
}
|
|
153
|
+
|
|
143
154
|
override fun onPreview(room: HMSRoom, localTracks: Array<HMSTrack>) {
|
|
144
155
|
val previewTracks = HmsDecoder.getPreviewTracks(localTracks)
|
|
145
156
|
val hmsRoom = HmsDecoder.getHmsRoom(room)
|
|
@@ -171,42 +182,7 @@ class HmsSDK(
|
|
|
171
182
|
arrayOf(Pair("username", "String"), Pair("authToken", "String"))
|
|
172
183
|
)
|
|
173
184
|
if (requiredKeys) {
|
|
174
|
-
|
|
175
|
-
HMSConfig(
|
|
176
|
-
credentials.getString("username") as String,
|
|
177
|
-
credentials.getString("authToken") as String
|
|
178
|
-
)
|
|
179
|
-
|
|
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
|
-
}
|
|
209
|
-
}
|
|
185
|
+
val config = HmsHelper.getHmsConfig(credentials)
|
|
210
186
|
|
|
211
187
|
HMSCoroutineScope.launch {
|
|
212
188
|
try {
|
|
@@ -260,6 +236,16 @@ class HmsSDK(
|
|
|
260
236
|
}
|
|
261
237
|
|
|
262
238
|
override fun onPeerUpdate(type: HMSPeerUpdate, peer: HMSPeer) {
|
|
239
|
+
if (type === HMSPeerUpdate.AUDIO_TOGGLED ||
|
|
240
|
+
type === HMSPeerUpdate.VIDEO_TOGGLED ||
|
|
241
|
+
type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER ||
|
|
242
|
+
type === HMSPeerUpdate.NO_DOMINANT_SPEAKER ||
|
|
243
|
+
type === HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER ||
|
|
244
|
+
type === HMSPeerUpdate.STARTED_SPEAKING ||
|
|
245
|
+
type === HMSPeerUpdate.STOPPED_SPEAKING
|
|
246
|
+
) {
|
|
247
|
+
return
|
|
248
|
+
}
|
|
263
249
|
val updateType = type.name
|
|
264
250
|
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
265
251
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
@@ -316,12 +302,12 @@ class HmsSDK(
|
|
|
316
302
|
override fun onMessageReceived(message: HMSMessage) {
|
|
317
303
|
val data: WritableMap = Arguments.createMap()
|
|
318
304
|
|
|
319
|
-
data.
|
|
305
|
+
data.putMap("sender", HmsDecoder.getHmsPeer(message.sender))
|
|
320
306
|
data.putString("message", message.message)
|
|
321
307
|
data.putString("type", message.type)
|
|
322
308
|
data.putString("time", message.serverReceiveTime.toString())
|
|
323
309
|
data.putString("id", id)
|
|
324
|
-
data.
|
|
310
|
+
data.putMap("recipient", HmsDecoder.getHmsMessageRecipient(message.recipient))
|
|
325
311
|
|
|
326
312
|
delegate.emitEvent("ON_MESSAGE", data)
|
|
327
313
|
}
|
|
@@ -381,19 +367,6 @@ class HmsSDK(
|
|
|
381
367
|
fun setLocalMute(data: ReadableMap) {
|
|
382
368
|
val isMute = data.getBoolean("isMute")
|
|
383
369
|
hmsSDK?.getLocalPeer()?.audioTrack?.setMute(isMute)
|
|
384
|
-
val type = if (isMute) "TRACK_MUTED" else "TRACK_UNMUTED"
|
|
385
|
-
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
386
|
-
val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
|
|
387
|
-
val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
|
|
388
|
-
|
|
389
|
-
val map: WritableMap = Arguments.createMap()
|
|
390
|
-
|
|
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)
|
|
397
370
|
}
|
|
398
371
|
|
|
399
372
|
fun setLocalVideoMute(data: ReadableMap) {
|
|
@@ -411,6 +384,7 @@ class HmsSDK(
|
|
|
411
384
|
hmsSDK?.leave(
|
|
412
385
|
object : HMSActionResultListener {
|
|
413
386
|
override fun onSuccess() {
|
|
387
|
+
screenshareCallback = null
|
|
414
388
|
callback?.resolve(emitHMSSuccess())
|
|
415
389
|
}
|
|
416
390
|
|
|
@@ -487,8 +461,7 @@ class HmsSDK(
|
|
|
487
461
|
)
|
|
488
462
|
if (requiredKeys) {
|
|
489
463
|
val peerId = data.getString("peerId")
|
|
490
|
-
val
|
|
491
|
-
val peer = HmsHelper.getPeerFromPeerId(peerId, peers)
|
|
464
|
+
val peer = HmsHelper.getPeerFromPeerId(peerId, hmsSDK?.getRoom())
|
|
492
465
|
if (peer != null) {
|
|
493
466
|
hmsSDK?.sendDirectMessage(
|
|
494
467
|
data.getString("message") as String,
|
|
@@ -526,7 +499,7 @@ class HmsSDK(
|
|
|
526
499
|
val force = data.getBoolean("force")
|
|
527
500
|
|
|
528
501
|
if (peerId !== null && role !== null) {
|
|
529
|
-
val hmsPeer = HmsHelper.getPeerFromPeerId(peerId, hmsSDK?.
|
|
502
|
+
val hmsPeer = HmsHelper.getPeerFromPeerId(peerId, hmsSDK?.getRoom())
|
|
530
503
|
val hmsRole = HmsHelper.getRoleFromRoleName(role, hmsSDK?.getRoles())
|
|
531
504
|
|
|
532
505
|
if (hmsRole != null && hmsPeer != null) {
|
|
@@ -561,8 +534,7 @@ class HmsSDK(
|
|
|
561
534
|
if (requiredKeys) {
|
|
562
535
|
val trackId = data.getString("trackId")
|
|
563
536
|
val mute = data.getBoolean("mute")
|
|
564
|
-
val
|
|
565
|
-
val track = HmsHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
537
|
+
val track = HmsHelper.getTrackFromTrackId(trackId, hmsSDK?.getRoom())
|
|
566
538
|
if (track != null) {
|
|
567
539
|
hmsSDK?.changeTrackState(
|
|
568
540
|
track,
|
|
@@ -641,11 +613,9 @@ class HmsSDK(
|
|
|
641
613
|
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("trackId", "String")))
|
|
642
614
|
if (requiredKeys) {
|
|
643
615
|
val trackId = data.getString("trackId")
|
|
644
|
-
val
|
|
645
|
-
val localPeer = hmsSDK?.getLocalPeer()
|
|
646
|
-
val localTrack = HmsHelper.getLocalTrackFromTrackId(trackId, localPeer)
|
|
616
|
+
val localTrack = HmsHelper.getTrackFromTrackId(trackId, hmsSDK?.getRoom())
|
|
647
617
|
if (localTrack == null) {
|
|
648
|
-
val track = HmsHelper.getTrackFromTrackId(trackId,
|
|
618
|
+
val track = HmsHelper.getTrackFromTrackId(trackId, hmsSDK?.getRoom())
|
|
649
619
|
if (track != null) {
|
|
650
620
|
val mute = track.isMute
|
|
651
621
|
callback?.resolve(mute)
|
|
@@ -669,8 +639,7 @@ class HmsSDK(
|
|
|
669
639
|
)
|
|
670
640
|
if (requiredKeys) {
|
|
671
641
|
val peerId = data.getString("peerId")
|
|
672
|
-
val
|
|
673
|
-
val peer = HmsHelper.getRemotePeerFromPeerId(peerId, peers)
|
|
642
|
+
val peer = HmsHelper.getRemotePeerFromPeerId(peerId, hmsSDK?.getRoom())
|
|
674
643
|
|
|
675
644
|
if (peer != null) {
|
|
676
645
|
hmsSDK?.removePeerRequest(
|
|
@@ -742,7 +711,29 @@ class HmsSDK(
|
|
|
742
711
|
}
|
|
743
712
|
}
|
|
744
713
|
|
|
745
|
-
fun
|
|
714
|
+
fun remoteMuteAllAudio() {
|
|
715
|
+
val allAudioTracks = hmsSDK?.getRoom()?.let { HmsUtilities.getAllAudioTracks(it) }
|
|
716
|
+
if (allAudioTracks != null) {
|
|
717
|
+
var customError: HMSException? = null
|
|
718
|
+
for (audioTrack in allAudioTracks) {
|
|
719
|
+
hmsSDK?.changeTrackState(
|
|
720
|
+
audioTrack,
|
|
721
|
+
true,
|
|
722
|
+
object : HMSActionResultListener {
|
|
723
|
+
override fun onSuccess() {}
|
|
724
|
+
override fun onError(error: HMSException) {
|
|
725
|
+
customError = error
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
)
|
|
729
|
+
}
|
|
730
|
+
if (customError != null) {
|
|
731
|
+
self.emitHMSError(customError!!)
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
fun setPlaybackForAllAudio(data: ReadableMap) {
|
|
746
737
|
val requiredKeys = HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("mute", "Boolean")))
|
|
747
738
|
if (requiredKeys) {
|
|
748
739
|
val mute = data.getBoolean("mute")
|
|
@@ -750,7 +741,7 @@ class HmsSDK(
|
|
|
750
741
|
if (peers != null) {
|
|
751
742
|
for (remotePeer in peers) {
|
|
752
743
|
val peerId = remotePeer.peerID
|
|
753
|
-
val peer = HmsHelper.getRemotePeerFromPeerId(peerId,
|
|
744
|
+
val peer = HmsHelper.getRemotePeerFromPeerId(peerId, hmsSDK?.getRoom())
|
|
754
745
|
peer?.audioTrack?.isPlaybackAllowed = !mute
|
|
755
746
|
}
|
|
756
747
|
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
|
|
@@ -777,9 +768,8 @@ class HmsSDK(
|
|
|
777
768
|
if (requiredKeys) {
|
|
778
769
|
val trackId = data.getString("trackId")
|
|
779
770
|
val playbackAllowed = data.getBoolean("playbackAllowed")
|
|
780
|
-
val
|
|
781
|
-
val
|
|
782
|
-
val remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
771
|
+
val remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, hmsSDK?.getRoom())
|
|
772
|
+
val remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, hmsSDK?.getRoom())
|
|
783
773
|
if (remoteAudioTrack != null) {
|
|
784
774
|
remoteAudioTrack.isPlaybackAllowed = playbackAllowed
|
|
785
775
|
} else if (remoteVideoTrack != null) {
|
|
@@ -795,9 +785,8 @@ class HmsSDK(
|
|
|
795
785
|
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("trackId", "String")))
|
|
796
786
|
if (requiredKeys) {
|
|
797
787
|
val trackId = data.getString("trackId")
|
|
798
|
-
val
|
|
799
|
-
val
|
|
800
|
-
val remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
788
|
+
val remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, hmsSDK?.getRoom())
|
|
789
|
+
val remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, hmsSDK?.getRoom())
|
|
801
790
|
when {
|
|
802
791
|
remoteAudioTrack != null -> {
|
|
803
792
|
val isPlaybackAllowed = remoteAudioTrack.isPlaybackAllowed
|
|
@@ -854,6 +843,9 @@ class HmsSDK(
|
|
|
854
843
|
}
|
|
855
844
|
}
|
|
856
845
|
}
|
|
846
|
+
this.emitCustomError("TRACKID_NOT_MATCHED")
|
|
847
|
+
} else {
|
|
848
|
+
this.emitCustomError("REMOTE_PEERS_NOT_FOUND")
|
|
857
849
|
}
|
|
858
850
|
} else {
|
|
859
851
|
this.emitRequiredKeysError()
|
|
@@ -954,7 +946,8 @@ class HmsSDK(
|
|
|
954
946
|
)
|
|
955
947
|
}
|
|
956
948
|
|
|
957
|
-
fun startScreenshare() {
|
|
949
|
+
fun startScreenshare(callback: Promise?) {
|
|
950
|
+
screenshareCallback = callback
|
|
958
951
|
runOnUiThread {
|
|
959
952
|
val intent = Intent(context, HmsScreenshareActivity::class.java)
|
|
960
953
|
intent.flags = FLAG_ACTIVITY_NEW_TASK
|
|
@@ -971,10 +964,12 @@ class HmsSDK(
|
|
|
971
964
|
hmsSDK?.stopScreenshare(
|
|
972
965
|
object : HMSActionResultListener {
|
|
973
966
|
override fun onError(error: HMSException) {
|
|
967
|
+
screenshareCallback = null
|
|
974
968
|
callback?.reject(error.code.toString(), error.message)
|
|
975
969
|
self.emitHMSError(error)
|
|
976
970
|
}
|
|
977
971
|
override fun onSuccess() {
|
|
972
|
+
screenshareCallback = null
|
|
978
973
|
callback?.resolve(emitHMSSuccess())
|
|
979
974
|
}
|
|
980
975
|
}
|
|
@@ -988,7 +983,8 @@ class HmsSDK(
|
|
|
988
983
|
val meetingURLVariants =
|
|
989
984
|
data.getArray("meetingURLVariants")?.toArrayList() as? ArrayList<HashMap<String, String>>
|
|
990
985
|
val hlsMeetingUrlVariant = HmsHelper.getHMSHLSMeetingURLVariants(meetingURLVariants)
|
|
991
|
-
val
|
|
986
|
+
val hlsRecordingConfig = HmsHelper.getHlsRecordingConfig(data)
|
|
987
|
+
val config = HMSHLSConfig(hlsMeetingUrlVariant, hlsRecordingConfig)
|
|
992
988
|
|
|
993
989
|
hmsSDK?.startHLSStreaming(
|
|
994
990
|
config,
|
|
@@ -1043,4 +1039,32 @@ class HmsSDK(
|
|
|
1043
1039
|
}
|
|
1044
1040
|
}
|
|
1045
1041
|
}
|
|
1042
|
+
|
|
1043
|
+
fun changeName(data: ReadableMap, callback: Promise?) {
|
|
1044
|
+
val requiredKeys = HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("name", "String")))
|
|
1045
|
+
if (requiredKeys) {
|
|
1046
|
+
val name = data.getString("name")
|
|
1047
|
+
if (name != null && name != "") {
|
|
1048
|
+
hmsSDK?.changeName(
|
|
1049
|
+
name,
|
|
1050
|
+
object : HMSActionResultListener {
|
|
1051
|
+
override fun onSuccess() {
|
|
1052
|
+
callback?.resolve(emitHMSSuccess())
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
override fun onError(error: HMSException) {
|
|
1056
|
+
callback?.reject(error.code.toString(), error.message)
|
|
1057
|
+
self.emitHMSError(error)
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
)
|
|
1061
|
+
} else {
|
|
1062
|
+
self.emitCustomError("NAME_UNDEFINED")
|
|
1063
|
+
callback?.reject("101", "NAME_UNDEFINED")
|
|
1064
|
+
}
|
|
1065
|
+
} else {
|
|
1066
|
+
callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
|
|
1067
|
+
self.emitRequiredKeysError()
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1046
1070
|
}
|
|
@@ -8,6 +8,8 @@ import android.os.Bundle
|
|
|
8
8
|
import androidx.activity.ComponentActivity
|
|
9
9
|
import androidx.activity.result.ActivityResultLauncher
|
|
10
10
|
import androidx.activity.result.contract.ActivityResultContracts
|
|
11
|
+
import com.facebook.react.bridge.Arguments
|
|
12
|
+
import com.facebook.react.bridge.WritableMap
|
|
11
13
|
import live.hms.video.error.HMSException
|
|
12
14
|
import live.hms.video.sdk.HMSActionResultListener
|
|
13
15
|
|
|
@@ -21,15 +23,24 @@ class HmsScreenshareActivity : ComponentActivity() {
|
|
|
21
23
|
object : HMSActionResultListener {
|
|
22
24
|
override fun onError(error: HMSException) {
|
|
23
25
|
finish()
|
|
26
|
+
HmsModule.hmsCollection[id]?.screenshareCallback?.reject(error)
|
|
24
27
|
HmsModule.hmsCollection[id]?.emitHMSError(error)
|
|
25
28
|
}
|
|
26
29
|
override fun onSuccess() {
|
|
30
|
+
HmsModule.hmsCollection[id]?.screenshareCallback?.resolve(
|
|
31
|
+
HmsModule.hmsCollection[id]?.emitHMSSuccess()
|
|
32
|
+
)
|
|
27
33
|
finish()
|
|
28
34
|
}
|
|
29
35
|
},
|
|
30
36
|
mediaProjectionPermissionResultData
|
|
31
37
|
)
|
|
32
38
|
} else {
|
|
39
|
+
val id = intent.getStringExtra("id")
|
|
40
|
+
val data: WritableMap = Arguments.createMap()
|
|
41
|
+
data.putBoolean("success", true)
|
|
42
|
+
data.putString("message", "RESULT_CANCELED")
|
|
43
|
+
HmsModule.hmsCollection[id]?.screenshareCallback?.resolve(data)
|
|
33
44
|
finish()
|
|
34
45
|
}
|
|
35
46
|
}
|
|
@@ -8,8 +8,8 @@ import com.facebook.react.bridge.Arguments
|
|
|
8
8
|
import com.facebook.react.bridge.ReactContext
|
|
9
9
|
import com.facebook.react.bridge.WritableMap
|
|
10
10
|
import com.facebook.react.uimanager.events.RCTEventEmitter
|
|
11
|
-
import live.hms.video.media.tracks.HMSTrackType
|
|
12
11
|
import live.hms.video.media.tracks.HMSVideoTrack
|
|
12
|
+
import live.hms.video.utils.HmsUtilities
|
|
13
13
|
import live.hms.video.utils.SharedEglContext
|
|
14
14
|
import org.webrtc.RendererCommon
|
|
15
15
|
import org.webrtc.SurfaceViewRenderer
|
|
@@ -18,7 +18,6 @@ import org.webrtc.SurfaceViewRenderer
|
|
|
18
18
|
class HmsView(context: ReactContext) : FrameLayout(context) {
|
|
19
19
|
private var surfaceView: SurfaceViewRenderer = SurfaceViewRenderer(context)
|
|
20
20
|
private var videoTrack: HMSVideoTrack? = null
|
|
21
|
-
private var localTrack: String? = null
|
|
22
21
|
private var scaleTypeApplied: Boolean = false
|
|
23
22
|
private var currentScaleType: RendererCommon.ScalingType =
|
|
24
23
|
RendererCommon.ScalingType.SCALE_ASPECT_FILL
|
|
@@ -31,7 +30,7 @@ class HmsView(context: ReactContext) : FrameLayout(context) {
|
|
|
31
30
|
surfaceView.setEnableHardwareScaler(true)
|
|
32
31
|
}
|
|
33
32
|
|
|
34
|
-
fun onReceiveNativeEvent() {
|
|
33
|
+
private fun onReceiveNativeEvent() {
|
|
35
34
|
val event: WritableMap = Arguments.createMap()
|
|
36
35
|
event.putString("message", "MyMessage")
|
|
37
36
|
val reactContext = context as ReactContext
|
|
@@ -91,36 +90,13 @@ class HmsView(context: ReactContext) : FrameLayout(context) {
|
|
|
91
90
|
if (id != null) {
|
|
92
91
|
sdkId = id
|
|
93
92
|
}
|
|
94
|
-
|
|
95
93
|
val hms = hmsCollection[sdkId]?.hmsSDK
|
|
96
94
|
|
|
97
95
|
if (trackId != null && hms != null) {
|
|
98
96
|
if (mirror != null) {
|
|
99
97
|
surfaceView.setMirror(mirror)
|
|
100
98
|
}
|
|
101
|
-
|
|
102
|
-
val localTrackId = hms.getLocalPeer()?.videoTrack?.trackId
|
|
103
|
-
if (localTrackId == localTrack) {
|
|
104
|
-
videoTrack = hms.getLocalPeer()?.videoTrack
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
val remotePeers = hms.getRemotePeers()
|
|
108
|
-
for (peer in remotePeers) {
|
|
109
|
-
val videoTrackId = peer.videoTrack?.trackId
|
|
110
|
-
|
|
111
|
-
val auxiliaryTracks = peer.auxiliaryTracks
|
|
112
|
-
for (track in auxiliaryTracks) {
|
|
113
|
-
val auxTrackId = track.trackId
|
|
114
|
-
if (trackId == auxTrackId && track.type == HMSTrackType.VIDEO && !track.isMute) {
|
|
115
|
-
videoTrack = track as HMSVideoTrack
|
|
116
|
-
return
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
if (videoTrackId == localTrack) {
|
|
120
|
-
videoTrack = peer.videoTrack
|
|
121
|
-
return
|
|
122
|
-
}
|
|
123
|
-
}
|
|
99
|
+
videoTrack = hms.getRoom()?.let { HmsUtilities.getVideoTrack(trackId, it) }
|
|
124
100
|
}
|
|
125
101
|
}
|
|
126
102
|
}
|
|
@@ -31,14 +31,12 @@ class HmssdkViewManager : SimpleViewManager<HmsView>() {
|
|
|
31
31
|
@ReactProp(name = "data")
|
|
32
32
|
fun setData(view: HmsView, data: ReadableMap) {
|
|
33
33
|
val trackId = data.getString("trackId")
|
|
34
|
-
// val sink = data.getBoolean("sink")
|
|
35
34
|
val id = data.getString("id")
|
|
36
35
|
val mirror = data.getBoolean("mirror")
|
|
37
36
|
val hmsCollection = getHms()
|
|
38
37
|
if (hmsCollection != null) {
|
|
39
38
|
view.setData(id, trackId, hmsCollection, mirror)
|
|
40
39
|
}
|
|
41
|
-
// do the processing here
|
|
42
40
|
}
|
|
43
41
|
|
|
44
42
|
@ReactProp(name = "scaleType")
|