@100mslive/react-native-hms 1.7.2 → 1.8.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/android/src/main/java/com/reactnativehmssdk/HMSAudioshareActivity.kt +1 -0
- package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +28 -10
- package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +113 -68
- package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +17 -4
- package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +34 -18
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +363 -159
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +367 -151
- package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +26 -7
- package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +32 -12
- package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +1 -0
- package/android/src/main/java/com/reactnativehmssdk/PipActionReceiver.kt +10 -6
- package/android/src/main/res/layout/player_view.xml +3 -2
- package/ios/HMSDecoder.swift +2 -2
- package/ios/HMSHLSPlayerManager.swift +18 -2
- package/ios/HMSManager.m +227 -70
- package/ios/HMSManager.swift +2 -2
- package/ios/HMSRNSDK.swift +67 -126
- package/ios/HMSView.swift +17 -3
- package/lib/commonjs/classes/HMSEncoder.js +6 -0
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +40 -26
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +10 -5
- package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js +1 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +6 -0
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +40 -26
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +11 -6
- package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +1 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/classes/HMSEncoder.d.ts +1 -0
- package/lib/typescript/classes/HMSSDK.d.ts +23 -12
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/types.d.ts +3 -1
- package/package.json +1 -1
- package/sdk-versions.json +2 -2
- package/src/classes/HMSEncoder.ts +9 -0
- package/src/classes/HMSSDK.tsx +48 -24
- package/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +15 -13
- package/src/index.ts +4 -1
- package/src/types.ts +2 -0
|
@@ -25,6 +25,7 @@ class HMSAudioshareActivity : ComponentActivity() {
|
|
|
25
25
|
HMSManager.hmsCollection[id]?.audioshareCallback?.reject(error)
|
|
26
26
|
HMSManager.hmsCollection[id]?.emitHMSError(error)
|
|
27
27
|
}
|
|
28
|
+
|
|
28
29
|
override fun onSuccess() {
|
|
29
30
|
HMSManager.hmsCollection[id]?.isAudioSharing = true
|
|
30
31
|
HMSManager.hmsCollection[id]?.audioshareCallback?.resolve(
|
|
@@ -16,7 +16,10 @@ import live.hms.video.sdk.models.trackchangerequest.HMSChangeTrackStateRequest
|
|
|
16
16
|
object HMSDecoder {
|
|
17
17
|
private var restrictRoleData = mutableMapOf<String, Boolean>()
|
|
18
18
|
|
|
19
|
-
fun setRestrictRoleData(
|
|
19
|
+
fun setRestrictRoleData(
|
|
20
|
+
roleName: String,
|
|
21
|
+
value: Boolean,
|
|
22
|
+
) {
|
|
20
23
|
this.restrictRoleData[roleName] = value
|
|
21
24
|
}
|
|
22
25
|
|
|
@@ -24,7 +27,10 @@ object HMSDecoder {
|
|
|
24
27
|
this.restrictRoleData.clear()
|
|
25
28
|
}
|
|
26
29
|
|
|
27
|
-
fun getHmsRoomSubset(
|
|
30
|
+
fun getHmsRoomSubset(
|
|
31
|
+
hmsRoom: HMSRoom?,
|
|
32
|
+
hmsRoomUpdateType: HMSRoomUpdate? = null,
|
|
33
|
+
): WritableMap {
|
|
28
34
|
val room: WritableMap = Arguments.createMap()
|
|
29
35
|
if (hmsRoom != null) {
|
|
30
36
|
room.putString("id", hmsRoom.roomId)
|
|
@@ -142,7 +148,10 @@ object HMSDecoder {
|
|
|
142
148
|
return room
|
|
143
149
|
}
|
|
144
150
|
|
|
145
|
-
fun getHmsPeerSubsetForPeerUpdateEvent(
|
|
151
|
+
fun getHmsPeerSubsetForPeerUpdateEvent(
|
|
152
|
+
hmsPeer: HMSPeer?,
|
|
153
|
+
peerUpdateType: HMSPeerUpdate,
|
|
154
|
+
): WritableMap {
|
|
146
155
|
val peer: WritableMap = Arguments.createMap()
|
|
147
156
|
if (hmsPeer != null) {
|
|
148
157
|
peer.putString(peerUpdateType.ordinal.toString(), hmsPeer.peerID)
|
|
@@ -171,7 +180,10 @@ object HMSDecoder {
|
|
|
171
180
|
return peer
|
|
172
181
|
}
|
|
173
182
|
|
|
174
|
-
fun getHmsPeerSubset(
|
|
183
|
+
fun getHmsPeerSubset(
|
|
184
|
+
hmsPeer: HMSPeer?,
|
|
185
|
+
peerUpdateType: HMSPeerUpdate? = null,
|
|
186
|
+
): WritableMap {
|
|
175
187
|
val peer: WritableMap = Arguments.createMap()
|
|
176
188
|
if (hmsPeer != null) {
|
|
177
189
|
peer.putString("peerID", hmsPeer.peerID)
|
|
@@ -564,7 +576,10 @@ object HMSDecoder {
|
|
|
564
576
|
return hmsTracks
|
|
565
577
|
}
|
|
566
578
|
|
|
567
|
-
fun getHmsRoleChangeRequest(
|
|
579
|
+
fun getHmsRoleChangeRequest(
|
|
580
|
+
request: HMSRoleChangeRequest,
|
|
581
|
+
id: String?,
|
|
582
|
+
): WritableMap {
|
|
568
583
|
val roleChangeRequest: WritableMap = Arguments.createMap()
|
|
569
584
|
if (id != null) {
|
|
570
585
|
request.requestedBy?.let {
|
|
@@ -577,7 +592,10 @@ object HMSDecoder {
|
|
|
577
592
|
return roleChangeRequest
|
|
578
593
|
}
|
|
579
594
|
|
|
580
|
-
fun getHmsChangeTrackStateRequest(
|
|
595
|
+
fun getHmsChangeTrackStateRequest(
|
|
596
|
+
request: HMSChangeTrackStateRequest,
|
|
597
|
+
id: String,
|
|
598
|
+
): WritableMap {
|
|
581
599
|
val changeTrackStateRequest: WritableMap = Arguments.createMap()
|
|
582
600
|
|
|
583
601
|
request.requestedBy?.let {
|
|
@@ -722,9 +740,7 @@ object HMSDecoder {
|
|
|
722
740
|
return subscribeSettings
|
|
723
741
|
}
|
|
724
742
|
|
|
725
|
-
private fun getHmsSubscribeDegradationSettings(
|
|
726
|
-
hmsSubscribeDegradationParams: SubscribeDegradationParams?,
|
|
727
|
-
): WritableMap {
|
|
743
|
+
private fun getHmsSubscribeDegradationSettings(hmsSubscribeDegradationParams: SubscribeDegradationParams?): WritableMap {
|
|
728
744
|
val subscribeDegradationParams: WritableMap = Arguments.createMap()
|
|
729
745
|
if (hmsSubscribeDegradationParams != null) {
|
|
730
746
|
subscribeDegradationParams.putString(
|
|
@@ -862,7 +878,9 @@ object HMSDecoder {
|
|
|
862
878
|
hmsQualityLimitationReasons.cpu?.let { qualityLimitationReasons.putDouble("cpu", it) }
|
|
863
879
|
hmsQualityLimitationReasons.none?.let { qualityLimitationReasons.putDouble("none", it) }
|
|
864
880
|
hmsQualityLimitationReasons.other?.let { qualityLimitationReasons.putDouble("other", it) }
|
|
865
|
-
hmsQualityLimitationReasons.qualityLimitationResolutionChanges?.let {
|
|
881
|
+
hmsQualityLimitationReasons.qualityLimitationResolutionChanges?.let {
|
|
882
|
+
qualityLimitationReasons.putInt("qualityLimitationResolutionChanges", it.toInt())
|
|
883
|
+
}
|
|
866
884
|
qualityLimitationReasons.putString("reason", hmsQualityLimitationReasons.reason.name)
|
|
867
885
|
}
|
|
868
886
|
return qualityLimitationReasons
|
|
@@ -4,6 +4,10 @@ import android.annotation.SuppressLint
|
|
|
4
4
|
import android.content.Context
|
|
5
5
|
import android.view.LayoutInflater
|
|
6
6
|
import android.widget.FrameLayout
|
|
7
|
+
import androidx.media3.common.Player
|
|
8
|
+
import androidx.media3.common.VideoSize
|
|
9
|
+
import androidx.media3.ui.AspectRatioFrameLayout.RESIZE_MODE_FIT
|
|
10
|
+
import androidx.media3.ui.AspectRatioFrameLayout.RESIZE_MODE_ZOOM
|
|
7
11
|
import androidx.media3.ui.PlayerView
|
|
8
12
|
import com.facebook.react.bridge.Arguments
|
|
9
13
|
import com.facebook.react.bridge.ReactContext
|
|
@@ -22,83 +26,85 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
|
|
|
22
26
|
private var hmsHlsPlayer: HmsHlsPlayer? = null // 100ms HLS Player
|
|
23
27
|
private var hmssdkInstance: HMSSDK? = null
|
|
24
28
|
private var statsMonitorAttached = false
|
|
25
|
-
private val hmsHlsPlaybackEventsObject =
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
private val hmsHlsPlaybackEventsObject =
|
|
30
|
+
object : HmsHlsPlaybackEvents {
|
|
31
|
+
override fun onCue(cue: HmsHlsCue) {
|
|
32
|
+
super.onCue(cue)
|
|
33
|
+
|
|
34
|
+
val data = Arguments.createMap()
|
|
35
|
+
cue.endDate?.let { data.putString("endDate", it.time.toString()) }
|
|
36
|
+
cue.id?.let { data.putString("id", it) }
|
|
37
|
+
cue.payloadval?.let { data.putString("payloadval", it) }
|
|
38
|
+
data.putString("startDate", cue.startDate.time.toString())
|
|
39
|
+
|
|
40
|
+
sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_CUE_EVENT, data)
|
|
41
|
+
}
|
|
28
42
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
cue.id?.let { data.putString("id", it) }
|
|
32
|
-
cue.payloadval?.let { data.putString("payloadval", it) }
|
|
33
|
-
data.putString("startDate", cue.startDate.time.toString())
|
|
43
|
+
override fun onPlaybackFailure(error: HmsHlsException) {
|
|
44
|
+
super.onPlaybackFailure(error)
|
|
34
45
|
|
|
35
|
-
|
|
36
|
-
}
|
|
46
|
+
val data = Arguments.createMap()
|
|
37
47
|
|
|
38
|
-
|
|
39
|
-
|
|
48
|
+
// error
|
|
49
|
+
val errorData = Arguments.createMap()
|
|
50
|
+
errorData.putInt("errorCode", error.error.errorCode)
|
|
51
|
+
errorData.putString("errorCodeName", error.error.errorCodeName)
|
|
52
|
+
error.error.message?.let {
|
|
53
|
+
errorData.putString("message", it)
|
|
54
|
+
}
|
|
40
55
|
|
|
41
|
-
|
|
56
|
+
data.putMap("error", errorData)
|
|
42
57
|
|
|
43
|
-
|
|
44
|
-
val errorData = Arguments.createMap()
|
|
45
|
-
errorData.putInt("errorCode", error.error.errorCode)
|
|
46
|
-
errorData.putString("errorCodeName", error.error.errorCodeName)
|
|
47
|
-
error.error.message?.let {
|
|
48
|
-
errorData.putString("message", it)
|
|
58
|
+
sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_FAILURE_EVENT, data)
|
|
49
59
|
}
|
|
50
60
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_FAILURE_EVENT, data)
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
override fun onPlaybackStateChanged(state: HmsHlsPlaybackState) {
|
|
57
|
-
super.onPlaybackStateChanged(state)
|
|
58
|
-
|
|
59
|
-
val data = Arguments.createMap()
|
|
60
|
-
data.putString("state", state.name)
|
|
61
|
-
sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_STATE_CHANGE_EVENT, data)
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
private val hmsHlsPlayerStatsListenerObject = object : PlayerStatsListener {
|
|
65
|
-
override fun onError(error: HMSException) {
|
|
66
|
-
val data = Arguments.createMap()
|
|
67
|
-
|
|
68
|
-
data.putString("action", error.action)
|
|
69
|
-
data.putInt("code", error.code)
|
|
70
|
-
data.putString("description", error.description)
|
|
71
|
-
data.putBoolean("isTerminal", error.isTerminal)
|
|
72
|
-
data.putString("message", error.message)
|
|
73
|
-
data.putString("name", error.name)
|
|
61
|
+
override fun onPlaybackStateChanged(state: HmsHlsPlaybackState) {
|
|
62
|
+
super.onPlaybackStateChanged(state)
|
|
74
63
|
|
|
75
|
-
|
|
64
|
+
val data = Arguments.createMap()
|
|
65
|
+
data.putString("state", state.name)
|
|
66
|
+
sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_STATE_CHANGE_EVENT, data)
|
|
67
|
+
}
|
|
76
68
|
}
|
|
69
|
+
private val hmsHlsPlayerStatsListenerObject =
|
|
70
|
+
object : PlayerStatsListener {
|
|
71
|
+
override fun onError(error: HMSException) {
|
|
72
|
+
val data = Arguments.createMap()
|
|
73
|
+
|
|
74
|
+
data.putString("action", error.action)
|
|
75
|
+
data.putInt("code", error.code)
|
|
76
|
+
data.putString("description", error.description)
|
|
77
|
+
data.putBoolean("isTerminal", error.isTerminal)
|
|
78
|
+
data.putString("message", error.message)
|
|
79
|
+
data.putString("name", error.name)
|
|
80
|
+
|
|
81
|
+
sendHLSStatsEventToJS(HMSHLSPlayerConstants.ON_STATS_EVENT_ERROR, data)
|
|
82
|
+
}
|
|
77
83
|
|
|
78
|
-
|
|
79
|
-
|
|
84
|
+
override fun onEventUpdate(playerStatsModel: PlayerStatsModel) {
|
|
85
|
+
val data = Arguments.createMap()
|
|
80
86
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
87
|
+
// bandwidth
|
|
88
|
+
data.putInt("bandWidthEstimate", playerStatsModel.bandwidth.bandWidthEstimate.toInt())
|
|
89
|
+
data.putInt("totalBytesLoaded", playerStatsModel.bandwidth.totalBytesLoaded.toInt())
|
|
84
90
|
|
|
85
|
-
|
|
86
|
-
|
|
91
|
+
// bufferedDuration
|
|
92
|
+
data.putInt("bufferedDuration", playerStatsModel.bufferedDuration.toInt())
|
|
87
93
|
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
// distanceFromLive
|
|
95
|
+
data.putInt("distanceFromLive", playerStatsModel.distanceFromLive.toInt())
|
|
90
96
|
|
|
91
|
-
|
|
92
|
-
|
|
97
|
+
// frameInfo
|
|
98
|
+
data.putInt("droppedFrameCount", playerStatsModel.frameInfo.droppedFrameCount)
|
|
93
99
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
100
|
+
// videoInfo
|
|
101
|
+
data.putInt("averageBitrate", playerStatsModel.videoInfo.averageBitrate)
|
|
102
|
+
data.putInt("videoHeight", playerStatsModel.videoInfo.videoHeight)
|
|
103
|
+
data.putInt("videoWidth", playerStatsModel.videoInfo.videoWidth)
|
|
98
104
|
|
|
99
|
-
|
|
105
|
+
sendHLSStatsEventToJS(HMSHLSPlayerConstants.ON_STATS_EVENT_UPDATE, data)
|
|
106
|
+
}
|
|
100
107
|
}
|
|
101
|
-
}
|
|
102
108
|
|
|
103
109
|
init {
|
|
104
110
|
val inflater = getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
|
|
@@ -109,6 +115,7 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
|
|
|
109
115
|
// getting Exoplayer View from above xml
|
|
110
116
|
val localPlayerView = view.findViewById<PlayerView>(R.id.hls_view)
|
|
111
117
|
playerView = localPlayerView
|
|
118
|
+
localPlayerView.useController = false
|
|
112
119
|
|
|
113
120
|
val hmssdkCollection = context.getNativeModule(HMSManager::class.java)?.getHmsInstance()
|
|
114
121
|
hmssdkInstance = hmssdkCollection?.get("12345")?.hmsSDK
|
|
@@ -122,6 +129,37 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
|
|
|
122
129
|
|
|
123
130
|
// setting 100ms HLS Player on Exoplayer
|
|
124
131
|
localPlayerView.player = localHmsHlsPlayer.getNativePlayer()
|
|
132
|
+
|
|
133
|
+
localPlayerView?.player?.addListener(
|
|
134
|
+
object : Player.Listener {
|
|
135
|
+
override fun onSurfaceSizeChanged(
|
|
136
|
+
width: Int,
|
|
137
|
+
height: Int,
|
|
138
|
+
) {
|
|
139
|
+
super.onSurfaceSizeChanged(width, height)
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
override fun onVideoSizeChanged(videoSize: VideoSize) {
|
|
143
|
+
super.onVideoSizeChanged(videoSize)
|
|
144
|
+
|
|
145
|
+
if (videoSize.height != 0 && videoSize.width != 0) {
|
|
146
|
+
val width = videoSize.width.toDouble()
|
|
147
|
+
val height = videoSize.height.toDouble()
|
|
148
|
+
|
|
149
|
+
if (width >= height) {
|
|
150
|
+
playerView?.resizeMode = RESIZE_MODE_FIT
|
|
151
|
+
} else {
|
|
152
|
+
playerView?.resizeMode = RESIZE_MODE_ZOOM
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
val data = Arguments.createMap()
|
|
156
|
+
data.putString("state", "onVideoSizeChanged")
|
|
157
|
+
data.putDouble("aspectRatio", (width / height))
|
|
158
|
+
sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_STATE_CHANGE_EVENT, data)
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
)
|
|
125
163
|
}
|
|
126
164
|
|
|
127
165
|
fun cleanup() {
|
|
@@ -138,13 +176,14 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
|
|
|
138
176
|
|
|
139
177
|
val hlsStreamingState = this.hmssdkInstance?.getRoom()?.hlsStreamingState
|
|
140
178
|
|
|
141
|
-
val defaultURL: String? =
|
|
142
|
-
|
|
143
|
-
it.
|
|
144
|
-
|
|
145
|
-
|
|
179
|
+
val defaultURL: String? =
|
|
180
|
+
hlsStreamingState?.let {
|
|
181
|
+
if (it.running) {
|
|
182
|
+
it.variants?.get(0)?.hlsStreamUrl
|
|
183
|
+
} else {
|
|
184
|
+
null
|
|
185
|
+
}
|
|
146
186
|
}
|
|
147
|
-
}
|
|
148
187
|
|
|
149
188
|
if (defaultURL !== null) {
|
|
150
189
|
hmsHlsPlayer?.play(defaultURL)
|
|
@@ -215,7 +254,10 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
|
|
|
215
254
|
statsMonitorAttached = false
|
|
216
255
|
}
|
|
217
256
|
|
|
218
|
-
private fun sendHLSPlaybackEventToJS(
|
|
257
|
+
private fun sendHLSPlaybackEventToJS(
|
|
258
|
+
eventName: String,
|
|
259
|
+
data: WritableMap,
|
|
260
|
+
) {
|
|
219
261
|
val event: WritableMap = Arguments.createMap()
|
|
220
262
|
event.putString("event", eventName)
|
|
221
263
|
event.putMap("data", data)
|
|
@@ -224,7 +266,10 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
|
|
|
224
266
|
reactContext.getJSModule(RCTEventEmitter::class.java).receiveEvent(id, HMSHLSPlayerConstants.HMS_HLS_PLAYBACK_EVENT, event)
|
|
225
267
|
}
|
|
226
268
|
|
|
227
|
-
private fun sendHLSStatsEventToJS(
|
|
269
|
+
private fun sendHLSStatsEventToJS(
|
|
270
|
+
eventName: String,
|
|
271
|
+
data: WritableMap,
|
|
272
|
+
) {
|
|
228
273
|
val event: WritableMap = Arguments.createMap()
|
|
229
274
|
event.putString("event", eventName)
|
|
230
275
|
event.putMap("data", data)
|
|
@@ -34,7 +34,11 @@ class HMSHLSPlayerManager : SimpleViewManager<HMSHLSPlayer>() {
|
|
|
34
34
|
)
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
override fun receiveCommand(
|
|
37
|
+
override fun receiveCommand(
|
|
38
|
+
root: HMSHLSPlayer,
|
|
39
|
+
commandId: Int,
|
|
40
|
+
args: ReadableArray?,
|
|
41
|
+
) {
|
|
38
42
|
super.receiveCommand(root, commandId, args)
|
|
39
43
|
|
|
40
44
|
when (commandId) {
|
|
@@ -81,17 +85,26 @@ class HMSHLSPlayerManager : SimpleViewManager<HMSHLSPlayer>() {
|
|
|
81
85
|
}
|
|
82
86
|
|
|
83
87
|
@ReactProp(name = "url")
|
|
84
|
-
fun setStreamURL(
|
|
88
|
+
fun setStreamURL(
|
|
89
|
+
view: HMSHLSPlayer,
|
|
90
|
+
data: String?,
|
|
91
|
+
) {
|
|
85
92
|
view.play(data)
|
|
86
93
|
}
|
|
87
94
|
|
|
88
95
|
@ReactProp(name = "enableStats", defaultBoolean = false)
|
|
89
|
-
fun setEnableStats(
|
|
96
|
+
fun setEnableStats(
|
|
97
|
+
view: HMSHLSPlayer,
|
|
98
|
+
data: Boolean,
|
|
99
|
+
) {
|
|
90
100
|
view.enableStats(data)
|
|
91
101
|
}
|
|
92
102
|
|
|
93
103
|
@ReactProp(name = "enableControls", defaultBoolean = false)
|
|
94
|
-
fun setEnableControls(
|
|
104
|
+
fun setEnableControls(
|
|
105
|
+
view: HMSHLSPlayer,
|
|
106
|
+
data: Boolean,
|
|
107
|
+
) {
|
|
95
108
|
view.enableControls(data)
|
|
96
109
|
}
|
|
97
110
|
|
|
@@ -29,7 +29,6 @@ import java.io.ByteArrayOutputStream
|
|
|
29
29
|
import java.util.*
|
|
30
30
|
|
|
31
31
|
object HMSHelper {
|
|
32
|
-
|
|
33
32
|
fun areAllRequiredKeysAvailable(
|
|
34
33
|
map: ReadableMap?,
|
|
35
34
|
requiredKeys: Array<Pair<String, String>>,
|
|
@@ -96,14 +95,20 @@ object HMSHelper {
|
|
|
96
95
|
return null
|
|
97
96
|
}
|
|
98
97
|
|
|
99
|
-
fun getPeerFromPeerId(
|
|
98
|
+
fun getPeerFromPeerId(
|
|
99
|
+
peerId: String?,
|
|
100
|
+
room: HMSRoom?,
|
|
101
|
+
): HMSPeer? {
|
|
100
102
|
if (peerId != null && room != null) {
|
|
101
103
|
return HmsUtilities.getPeer(peerId, room)
|
|
102
104
|
}
|
|
103
105
|
return null
|
|
104
106
|
}
|
|
105
107
|
|
|
106
|
-
fun getRemotePeerFromPeerId(
|
|
108
|
+
fun getRemotePeerFromPeerId(
|
|
109
|
+
peerId: String?,
|
|
110
|
+
room: HMSRoom?,
|
|
111
|
+
): HMSRemotePeer? {
|
|
107
112
|
if (peerId != null && room != null) {
|
|
108
113
|
return HmsUtilities.getPeer(peerId, room) as? HMSRemotePeer
|
|
109
114
|
}
|
|
@@ -128,7 +133,10 @@ object HMSHelper {
|
|
|
128
133
|
return encodedRoles.toList()
|
|
129
134
|
}
|
|
130
135
|
|
|
131
|
-
fun getRoleFromRoleName(
|
|
136
|
+
fun getRoleFromRoleName(
|
|
137
|
+
role: String?,
|
|
138
|
+
roles: List<HMSRole>?,
|
|
139
|
+
): HMSRole? {
|
|
132
140
|
if (role != null && roles != null) {
|
|
133
141
|
for (hmsRole in roles) {
|
|
134
142
|
if (role == hmsRole.name) {
|
|
@@ -139,21 +147,30 @@ object HMSHelper {
|
|
|
139
147
|
return null
|
|
140
148
|
}
|
|
141
149
|
|
|
142
|
-
fun getRemoteAudioTrackFromTrackId(
|
|
150
|
+
fun getRemoteAudioTrackFromTrackId(
|
|
151
|
+
trackId: String?,
|
|
152
|
+
room: HMSRoom?,
|
|
153
|
+
): HMSRemoteAudioTrack? {
|
|
143
154
|
if (trackId != null && room != null) {
|
|
144
155
|
return HmsUtilities.getAudioTrack(trackId, room) as? HMSRemoteAudioTrack
|
|
145
156
|
}
|
|
146
157
|
return null
|
|
147
158
|
}
|
|
148
159
|
|
|
149
|
-
fun getRemoteVideoTrackFromTrackId(
|
|
160
|
+
fun getRemoteVideoTrackFromTrackId(
|
|
161
|
+
trackId: String?,
|
|
162
|
+
room: HMSRoom?,
|
|
163
|
+
): HMSRemoteVideoTrack? {
|
|
150
164
|
if (trackId != null && room != null) {
|
|
151
165
|
return HmsUtilities.getVideoTrack(trackId, room) as? HMSRemoteVideoTrack
|
|
152
166
|
}
|
|
153
167
|
return null
|
|
154
168
|
}
|
|
155
169
|
|
|
156
|
-
fun getTrackFromTrackId(
|
|
170
|
+
fun getTrackFromTrackId(
|
|
171
|
+
trackId: String?,
|
|
172
|
+
room: HMSRoom?,
|
|
173
|
+
): HMSTrack? {
|
|
157
174
|
if (trackId != null && room != null) {
|
|
158
175
|
return HmsUtilities.getTrack(trackId, room)
|
|
159
176
|
}
|
|
@@ -334,7 +351,10 @@ object HMSHelper {
|
|
|
334
351
|
return HMSVideoTrackSettings.CameraFacing.FRONT
|
|
335
352
|
}
|
|
336
353
|
|
|
337
|
-
fun getHms(
|
|
354
|
+
fun getHms(
|
|
355
|
+
credentials: ReadableMap,
|
|
356
|
+
hmsCollection: MutableMap<String, HMSRNSDK>,
|
|
357
|
+
): HMSRNSDK? {
|
|
338
358
|
val id = credentials.getString("id")
|
|
339
359
|
|
|
340
360
|
return if (id != null) {
|
|
@@ -372,9 +392,7 @@ object HMSHelper {
|
|
|
372
392
|
return HMSHLSConfig(hlsMeetingUrlVariant, hlsRecordingConfig)
|
|
373
393
|
}
|
|
374
394
|
|
|
375
|
-
private fun getHMSHLSMeetingURLVariants(
|
|
376
|
-
hmsMeetingURLVariants: ArrayList<HashMap<String, String>>?,
|
|
377
|
-
): List<HMSHLSMeetingURLVariant> {
|
|
395
|
+
private fun getHMSHLSMeetingURLVariants(hmsMeetingURLVariants: ArrayList<HashMap<String, String>>?): List<HMSHLSMeetingURLVariant> {
|
|
378
396
|
val meetingURLVariants = mutableListOf<HMSHLSMeetingURLVariant>()
|
|
379
397
|
if (hmsMeetingURLVariants !== null) {
|
|
380
398
|
for (variant in hmsMeetingURLVariants) {
|
|
@@ -408,9 +426,7 @@ object HMSHelper {
|
|
|
408
426
|
return null
|
|
409
427
|
}
|
|
410
428
|
|
|
411
|
-
private fun getHMSHLSMeetingURLVariant(
|
|
412
|
-
hmsMeetingURLVariant: HashMap<String, String>?,
|
|
413
|
-
): HMSHLSMeetingURLVariant {
|
|
429
|
+
private fun getHMSHLSMeetingURLVariant(hmsMeetingURLVariant: HashMap<String, String>?): HMSHLSMeetingURLVariant {
|
|
414
430
|
var meetingURLVariant = HMSHLSMeetingURLVariant("", "")
|
|
415
431
|
if (hmsMeetingURLVariant !== null) {
|
|
416
432
|
val meetingUrl = hmsMeetingURLVariant["meetingUrl"] as String
|
|
@@ -478,7 +494,7 @@ object HMSHelper {
|
|
|
478
494
|
initEndpoint = credentials.getString("endpoint") as String,
|
|
479
495
|
metadata = credentials.getString("metadata") as String,
|
|
480
496
|
captureNetworkQualityInPreview =
|
|
481
|
-
|
|
497
|
+
credentials.getBoolean("captureNetworkQualityInPreview"),
|
|
482
498
|
)
|
|
483
499
|
}
|
|
484
500
|
areAllRequiredKeysAvailable(
|
|
@@ -503,7 +519,7 @@ object HMSHelper {
|
|
|
503
519
|
credentials.getString("authToken") as String,
|
|
504
520
|
initEndpoint = credentials.getString("endpoint") as String,
|
|
505
521
|
captureNetworkQualityInPreview =
|
|
506
|
-
|
|
522
|
+
credentials.getBoolean("captureNetworkQualityInPreview"),
|
|
507
523
|
)
|
|
508
524
|
}
|
|
509
525
|
areAllRequiredKeysAvailable(
|
|
@@ -516,7 +532,7 @@ object HMSHelper {
|
|
|
516
532
|
credentials.getString("authToken") as String,
|
|
517
533
|
metadata = credentials.getString("metadata") as String,
|
|
518
534
|
captureNetworkQualityInPreview =
|
|
519
|
-
|
|
535
|
+
credentials.getBoolean("captureNetworkQualityInPreview"),
|
|
520
536
|
)
|
|
521
537
|
}
|
|
522
538
|
areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
|
|
@@ -544,7 +560,7 @@ object HMSHelper {
|
|
|
544
560
|
credentials.getString("username") as String,
|
|
545
561
|
credentials.getString("authToken") as String,
|
|
546
562
|
captureNetworkQualityInPreview =
|
|
547
|
-
|
|
563
|
+
credentials.getBoolean("captureNetworkQualityInPreview"),
|
|
548
564
|
)
|
|
549
565
|
}
|
|
550
566
|
}
|