@fishjam-cloud/react-native-client 0.2.2 → 0.2.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 +9 -397
- package/android/build.gradle +1 -1
- package/android/src/main/java/io/fishjam/reactnative/EmitableEvents.kt +2 -1
- package/android/src/main/java/io/fishjam/reactnative/Errors.kt +3 -2
- package/android/src/main/java/io/fishjam/reactnative/RNFishjamClient.kt +86 -73
- package/android/src/main/java/io/fishjam/reactnative/RNFishjamClientModule.kt +20 -19
- package/build/RNFishjamClientModule.d.ts +10 -8
- package/build/RNFishjamClientModule.d.ts.map +1 -1
- package/build/RNFishjamClientModule.js +2 -1
- package/build/RNFishjamClientModule.js.map +1 -1
- package/build/common/client.d.ts +8 -5
- package/build/common/client.d.ts.map +1 -1
- package/build/common/client.js +9 -6
- package/build/common/client.js.map +1 -1
- package/build/common/metadata.d.ts +4 -3
- package/build/common/metadata.d.ts.map +1 -1
- package/build/common/metadata.js +5 -4
- package/build/common/metadata.js.map +1 -1
- package/build/common/webRTC.d.ts +2 -0
- package/build/common/webRTC.d.ts.map +1 -1
- package/build/common/webRTC.js +2 -0
- package/build/common/webRTC.js.map +1 -1
- package/build/components/VideoPreviewView.d.ts +6 -3
- package/build/components/VideoPreviewView.d.ts.map +1 -1
- package/build/components/VideoPreviewView.js +5 -0
- package/build/components/VideoPreviewView.js.map +1 -1
- package/build/components/VideoRendererView.d.ts +5 -3
- package/build/components/VideoRendererView.d.ts.map +1 -1
- package/build/components/VideoRendererView.js +4 -0
- package/build/components/VideoRendererView.js.map +1 -1
- package/build/hooks/useAudioSettings.d.ts +15 -0
- package/build/hooks/useAudioSettings.d.ts.map +1 -1
- package/build/hooks/useAudioSettings.js +15 -13
- package/build/hooks/useAudioSettings.js.map +1 -1
- package/build/hooks/useBandwidthEstimation.d.ts +2 -0
- package/build/hooks/useBandwidthEstimation.d.ts.map +1 -1
- package/build/hooks/useBandwidthEstimation.js +2 -0
- package/build/hooks/useBandwidthEstimation.js.map +1 -1
- package/build/hooks/useCamera.d.ts +62 -1
- package/build/hooks/useCamera.d.ts.map +1 -1
- package/build/hooks/useCamera.js +46 -38
- package/build/hooks/useCamera.js.map +1 -1
- package/build/hooks/useFishjamEvent.d.ts +2 -1
- package/build/hooks/useFishjamEvent.d.ts.map +1 -1
- package/build/hooks/useFishjamEvent.js +4 -5
- package/build/hooks/useFishjamEvent.js.map +1 -1
- package/build/hooks/useMicrophone.d.ts +4 -0
- package/build/hooks/useMicrophone.d.ts.map +1 -1
- package/build/hooks/useMicrophone.js +8 -4
- package/build/hooks/useMicrophone.js.map +1 -1
- package/build/hooks/useParticipants.d.ts +2 -0
- package/build/hooks/useParticipants.d.ts.map +1 -1
- package/build/hooks/useParticipants.js +2 -0
- package/build/hooks/useParticipants.js.map +1 -1
- package/build/hooks/useReconnection.d.ts +6 -0
- package/build/hooks/useReconnection.d.ts.map +1 -1
- package/build/hooks/useReconnection.js +6 -0
- package/build/hooks/useReconnection.js.map +1 -1
- package/build/hooks/useScreenShare.d.ts +57 -0
- package/build/hooks/useScreenShare.d.ts.map +1 -0
- package/build/hooks/useScreenShare.js +85 -0
- package/build/hooks/useScreenShare.js.map +1 -0
- package/build/index.d.ts +4 -3
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -1
- package/build/index.js.map +1 -1
- package/build/stats/useRTCStatistics.d.ts +1 -0
- package/build/stats/useRTCStatistics.d.ts.map +1 -1
- package/build/stats/useRTCStatistics.js +1 -0
- package/build/stats/useRTCStatistics.js.map +1 -1
- package/build/types.d.ts +6 -0
- package/build/types.d.ts.map +1 -1
- package/build/types.js.map +1 -1
- package/build/utils/errorListener.d.ts +2 -0
- package/build/utils/errorListener.d.ts.map +1 -0
- package/build/utils/errorListener.js +16 -0
- package/build/utils/errorListener.js.map +1 -0
- package/build/utils/foregroundService.d.ts +2 -0
- package/build/utils/foregroundService.d.ts.map +1 -1
- package/build/utils/foregroundService.js +2 -0
- package/build/utils/foregroundService.js.map +1 -1
- package/ios/Events.swift +2 -1
- package/ios/RNFishjamClient.podspec +1 -1
- package/ios/RNFishjamClient.swift +76 -62
- package/ios/RNFishjamClientModule.swift +18 -17
- package/package.json +13 -10
- package/plugin/broadcastExtensionFiles/FishjamBroadcastSampleHandler.swift +50 -0
- package/plugin/broadcastExtensionFiles/FishjamScreenBroadcastExtension.entitlements +10 -0
- package/plugin/broadcastExtensionFiles/Info.plist +27 -0
- package/plugin/build/types.d.ts +5 -5
- package/plugin/build/withFishjamAndroid.js +2 -2
- package/plugin/build/withFishjamIos.js +4 -4
- package/build/hooks/useScreencast.d.ts +0 -38
- package/build/hooks/useScreencast.d.ts.map +0 -1
- package/build/hooks/useScreencast.js +0 -77
- package/build/hooks/useScreencast.js.map +0 -1
|
@@ -8,7 +8,7 @@ import androidx.appcompat.app.AppCompatActivity
|
|
|
8
8
|
import com.fishjamcloud.client.FishjamClient
|
|
9
9
|
import com.fishjamcloud.client.FishjamClientListener
|
|
10
10
|
import com.fishjamcloud.client.media.LocalAudioTrack
|
|
11
|
-
import com.fishjamcloud.client.media.
|
|
11
|
+
import com.fishjamcloud.client.media.LocalScreenShareTrack
|
|
12
12
|
import com.fishjamcloud.client.media.LocalVideoTrack
|
|
13
13
|
import com.fishjamcloud.client.media.RemoteAudioTrack
|
|
14
14
|
import com.fishjamcloud.client.media.RemoteVideoTrack
|
|
@@ -36,24 +36,26 @@ import org.webrtc.Logging
|
|
|
36
36
|
class RNFishjamClient(
|
|
37
37
|
val sendEvent: (name: String, data: Map<String, Any?>) -> Unit
|
|
38
38
|
) : FishjamClientListener {
|
|
39
|
-
private val
|
|
39
|
+
private val SCREENSHARE_REQUEST = 1
|
|
40
40
|
|
|
41
41
|
var isMicrophoneOn = false
|
|
42
42
|
var isCameraOn = false
|
|
43
|
-
var
|
|
43
|
+
var isScreenShareOn = false
|
|
44
44
|
var isConnected = false
|
|
45
45
|
|
|
46
|
+
private var isCameraInitialized = false
|
|
47
|
+
|
|
46
48
|
private var connectPromise: Promise? = null
|
|
47
|
-
private var
|
|
49
|
+
private var screenSharePermissionPromise: Promise? = null
|
|
48
50
|
|
|
49
51
|
var videoSimulcastConfig: SimulcastConfig = SimulcastConfig()
|
|
50
52
|
private var localUserMetadata: Metadata = mutableMapOf()
|
|
51
53
|
|
|
52
|
-
var
|
|
53
|
-
var
|
|
54
|
-
var
|
|
54
|
+
var screenShareQuality: String? = null
|
|
55
|
+
var screenShareSimulcastConfig: SimulcastConfig = SimulcastConfig()
|
|
56
|
+
var screenShareMaxBandwidth: TrackBandwidthLimit = TrackBandwidthLimit.BandwidthLimit(0)
|
|
55
57
|
|
|
56
|
-
var
|
|
58
|
+
var screenShareMetadata: Map<String, Any> = mutableMapOf()
|
|
57
59
|
|
|
58
60
|
private var mediaProjectionIntent: Intent? = null
|
|
59
61
|
|
|
@@ -103,16 +105,16 @@ class RNFishjamClient(
|
|
|
103
105
|
data: Intent?
|
|
104
106
|
) {
|
|
105
107
|
coroutineScope.launch(Dispatchers.Main) {
|
|
106
|
-
if (requestCode !=
|
|
108
|
+
if (requestCode != SCREENSHARE_REQUEST) return@launch
|
|
107
109
|
if (resultCode != Activity.RESULT_OK) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
+
screenSharePermissionPromise?.resolve("denied")
|
|
111
|
+
screenSharePermissionPromise = null
|
|
110
112
|
return@launch
|
|
111
113
|
}
|
|
112
114
|
|
|
113
115
|
mediaProjectionIntent = data
|
|
114
|
-
|
|
115
|
-
|
|
116
|
+
screenSharePermissionPromise?.resolve("granted")
|
|
117
|
+
screenSharePermissionPromise = null
|
|
116
118
|
}
|
|
117
119
|
}
|
|
118
120
|
|
|
@@ -167,7 +169,7 @@ class RNFishjamClient(
|
|
|
167
169
|
}
|
|
168
170
|
videoParameters =
|
|
169
171
|
videoParameters.copy(
|
|
170
|
-
dimensions = if (createOptions.
|
|
172
|
+
dimensions = if (createOptions.flipDimensions) videoParameters.dimensions.flip() else videoParameters.dimensions,
|
|
171
173
|
simulcastConfig = getSimulcastConfigFromOptions(createOptions.simulcastConfig),
|
|
172
174
|
maxBitrate = videoMaxBandwidth
|
|
173
175
|
)
|
|
@@ -190,12 +192,12 @@ class RNFishjamClient(
|
|
|
190
192
|
.filterIsInstance<LocalAudioTrack>()
|
|
191
193
|
.firstOrNull()
|
|
192
194
|
|
|
193
|
-
private fun
|
|
195
|
+
private fun getLocalScreenShareTrack(): LocalScreenShareTrack? =
|
|
194
196
|
fishjamClient
|
|
195
197
|
.getLocalEndpoint()
|
|
196
198
|
.tracks
|
|
197
199
|
.values
|
|
198
|
-
.filterIsInstance<
|
|
200
|
+
.filterIsInstance<LocalScreenShareTrack>()
|
|
199
201
|
.firstOrNull()
|
|
200
202
|
|
|
201
203
|
private fun ensureConnected() {
|
|
@@ -216,9 +218,9 @@ class RNFishjamClient(
|
|
|
216
218
|
}
|
|
217
219
|
}
|
|
218
220
|
|
|
219
|
-
private fun
|
|
220
|
-
if (
|
|
221
|
-
throw
|
|
221
|
+
private fun ensureScreenShareTrack() {
|
|
222
|
+
if (getLocalScreenShareTrack() == null) {
|
|
223
|
+
throw NoScreenShareTrackError()
|
|
222
224
|
}
|
|
223
225
|
}
|
|
224
226
|
|
|
@@ -253,20 +255,26 @@ class RNFishjamClient(
|
|
|
253
255
|
}
|
|
254
256
|
|
|
255
257
|
fun leaveRoom() {
|
|
256
|
-
if (
|
|
257
|
-
|
|
258
|
+
if (isScreenShareOn) {
|
|
259
|
+
stopScreenShare()
|
|
258
260
|
}
|
|
259
261
|
isMicrophoneOn = false
|
|
260
262
|
isCameraOn = false
|
|
261
|
-
|
|
263
|
+
isScreenShareOn = false
|
|
262
264
|
isConnected = false
|
|
265
|
+
isCameraInitialized = false
|
|
263
266
|
fishjamClient.leave()
|
|
264
267
|
}
|
|
265
268
|
|
|
266
269
|
suspend fun startCamera(config: CameraConfig) {
|
|
270
|
+
if (isCameraInitialized) {
|
|
271
|
+
emitWarning("Camera already started. You may only call startCamera once before leaveRoom is called.")
|
|
272
|
+
return
|
|
273
|
+
}
|
|
267
274
|
val cameraTrack = createCameraTrack(config)
|
|
268
275
|
setCameraTrackState(cameraTrack, config.cameraEnabled)
|
|
269
276
|
emitEndpoints()
|
|
277
|
+
isCameraInitialized = true
|
|
270
278
|
}
|
|
271
279
|
|
|
272
280
|
private suspend fun createCameraTrack(config: CameraConfig): LocalVideoTrack {
|
|
@@ -338,9 +346,9 @@ class RNFishjamClient(
|
|
|
338
346
|
return isMicrophoneOn
|
|
339
347
|
}
|
|
340
348
|
|
|
341
|
-
fun
|
|
342
|
-
|
|
343
|
-
if (!
|
|
349
|
+
fun handleScreenSharePermission(promise: Promise) {
|
|
350
|
+
screenSharePermissionPromise = promise
|
|
351
|
+
if (!isScreenShareOn) {
|
|
344
352
|
ensureConnected()
|
|
345
353
|
val currentActivity = appContext?.currentActivity ?: throw ActivityNotFoundException()
|
|
346
354
|
|
|
@@ -349,25 +357,25 @@ class RNFishjamClient(
|
|
|
349
357
|
AppCompatActivity.MEDIA_PROJECTION_SERVICE
|
|
350
358
|
) as MediaProjectionManager
|
|
351
359
|
val intent = mediaProjectionManager.createScreenCaptureIntent()
|
|
352
|
-
currentActivity.startActivityForResult(intent,
|
|
360
|
+
currentActivity.startActivityForResult(intent, SCREENSHARE_REQUEST)
|
|
353
361
|
}
|
|
354
362
|
}
|
|
355
363
|
|
|
356
|
-
suspend fun
|
|
357
|
-
this.
|
|
358
|
-
this.
|
|
359
|
-
this.
|
|
360
|
-
getSimulcastConfigFromOptions(
|
|
361
|
-
this.
|
|
364
|
+
suspend fun toggleScreenShare(screenShareOptions: ScreenShareOptions) {
|
|
365
|
+
this.screenShareMetadata = screenShareOptions.screenShareMetadata
|
|
366
|
+
this.screenShareQuality = screenShareOptions.quality
|
|
367
|
+
this.screenShareSimulcastConfig =
|
|
368
|
+
getSimulcastConfigFromOptions(screenShareOptions.simulcastConfig)
|
|
369
|
+
this.screenShareMaxBandwidth =
|
|
362
370
|
getMaxBandwidthFromOptions(
|
|
363
|
-
|
|
364
|
-
|
|
371
|
+
screenShareOptions.maxBandwidthMap,
|
|
372
|
+
screenShareOptions.maxBandwidthInt
|
|
365
373
|
)
|
|
366
|
-
if (!
|
|
374
|
+
if (!isScreenShareOn) {
|
|
367
375
|
ensureConnected()
|
|
368
|
-
|
|
376
|
+
startScreenShare()
|
|
369
377
|
} else {
|
|
370
|
-
|
|
378
|
+
stopScreenShare()
|
|
371
379
|
}
|
|
372
380
|
}
|
|
373
381
|
|
|
@@ -405,7 +413,7 @@ class RNFishjamClient(
|
|
|
405
413
|
"metadata" to track.metadata
|
|
406
414
|
)
|
|
407
415
|
|
|
408
|
-
is
|
|
416
|
+
is LocalScreenShareTrack ->
|
|
409
417
|
mapOf(
|
|
410
418
|
"id" to track.id(),
|
|
411
419
|
"type" to "Video",
|
|
@@ -470,9 +478,9 @@ class RNFishjamClient(
|
|
|
470
478
|
}
|
|
471
479
|
}
|
|
472
480
|
|
|
473
|
-
fun
|
|
474
|
-
|
|
475
|
-
|
|
481
|
+
fun updateLocalScreenShareTrackMetadata(metadata: Metadata) {
|
|
482
|
+
ensureScreenShareTrack()
|
|
483
|
+
getLocalScreenShareTrack()?.let {
|
|
476
484
|
updateTrackMetadata(it.id(), metadata)
|
|
477
485
|
}
|
|
478
486
|
}
|
|
@@ -523,27 +531,27 @@ class RNFishjamClient(
|
|
|
523
531
|
)
|
|
524
532
|
}
|
|
525
533
|
|
|
526
|
-
fun
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
534
|
+
fun toggleScreenShareTrackEncoding(encoding: String): Map<String, Any> {
|
|
535
|
+
ensureScreenShareTrack()
|
|
536
|
+
getLocalScreenShareTrack()?.let {
|
|
537
|
+
screenShareSimulcastConfig = toggleTrackEncoding(encoding, it.id(), screenShareSimulcastConfig)
|
|
530
538
|
}
|
|
531
|
-
return getSimulcastConfigAsRNMap(
|
|
539
|
+
return getSimulcastConfigAsRNMap(screenShareSimulcastConfig)
|
|
532
540
|
}
|
|
533
541
|
|
|
534
|
-
fun
|
|
535
|
-
|
|
536
|
-
|
|
542
|
+
fun setScreenShareTrackBandwidth(bandwidth: Int) {
|
|
543
|
+
ensureScreenShareTrack()
|
|
544
|
+
getLocalScreenShareTrack()?.let {
|
|
537
545
|
fishjamClient.setTrackBandwidth(it.id(), TrackBandwidthLimit.BandwidthLimit(bandwidth))
|
|
538
546
|
}
|
|
539
547
|
}
|
|
540
548
|
|
|
541
|
-
fun
|
|
549
|
+
fun setScreenShareTrackEncodingBandwidth(
|
|
542
550
|
encoding: String,
|
|
543
551
|
bandwidth: Int
|
|
544
552
|
) {
|
|
545
|
-
|
|
546
|
-
|
|
553
|
+
ensureScreenShareTrack()
|
|
554
|
+
getLocalScreenShareTrack()?.let {
|
|
547
555
|
fishjamClient.setEncodingBandwidth(
|
|
548
556
|
it.id(),
|
|
549
557
|
encoding,
|
|
@@ -661,25 +669,25 @@ class RNFishjamClient(
|
|
|
661
669
|
return newMap
|
|
662
670
|
}
|
|
663
671
|
|
|
664
|
-
private suspend fun
|
|
665
|
-
val videoParameters =
|
|
672
|
+
private suspend fun startScreenShare() {
|
|
673
|
+
val videoParameters = getScreenShareVideoParameters()
|
|
666
674
|
if (mediaProjectionIntent == null) {
|
|
667
|
-
throw
|
|
675
|
+
throw MissingScreenSharePermission()
|
|
668
676
|
}
|
|
669
|
-
fishjamClient.
|
|
677
|
+
fishjamClient.createScreenShareTrack(
|
|
670
678
|
mediaProjectionIntent!!,
|
|
671
679
|
videoParameters,
|
|
672
|
-
|
|
680
|
+
screenShareMetadata
|
|
673
681
|
)
|
|
674
682
|
mediaProjectionIntent = null
|
|
675
683
|
|
|
676
|
-
|
|
684
|
+
setScreenShareTrackState(true)
|
|
677
685
|
emitEndpoints()
|
|
678
686
|
}
|
|
679
687
|
|
|
680
|
-
private fun
|
|
688
|
+
private fun getScreenShareVideoParameters(): VideoParameters {
|
|
681
689
|
val videoParameters =
|
|
682
|
-
when (
|
|
690
|
+
when (screenShareQuality) {
|
|
683
691
|
"VGA" -> VideoParameters.presetScreenShareVGA
|
|
684
692
|
"HD5" -> VideoParameters.presetScreenShareHD5
|
|
685
693
|
"HD15" -> VideoParameters.presetScreenShareHD15
|
|
@@ -690,28 +698,28 @@ class RNFishjamClient(
|
|
|
690
698
|
val dimensions = videoParameters.dimensions.flip()
|
|
691
699
|
return videoParameters.copy(
|
|
692
700
|
dimensions = dimensions,
|
|
693
|
-
simulcastConfig =
|
|
694
|
-
maxBitrate =
|
|
701
|
+
simulcastConfig = screenShareSimulcastConfig,
|
|
702
|
+
maxBitrate = screenShareMaxBandwidth
|
|
695
703
|
)
|
|
696
704
|
}
|
|
697
705
|
|
|
698
|
-
private fun
|
|
699
|
-
|
|
700
|
-
val eventName = EmitableEvents.
|
|
706
|
+
private fun setScreenShareTrackState(isEnabled: Boolean) {
|
|
707
|
+
isScreenShareOn = isEnabled
|
|
708
|
+
val eventName = EmitableEvents.IsScreenShareOn
|
|
701
709
|
emitEvent(eventName, mapOf(eventName to isEnabled))
|
|
702
710
|
}
|
|
703
711
|
|
|
704
|
-
private fun
|
|
705
|
-
|
|
712
|
+
private fun stopScreenShare() {
|
|
713
|
+
ensureScreenShareTrack()
|
|
706
714
|
coroutineScope.launch {
|
|
707
|
-
val
|
|
715
|
+
val screenShareTrack =
|
|
708
716
|
fishjamClient.getLocalEndpoint().tracks.values.first { track ->
|
|
709
|
-
track is
|
|
710
|
-
} as?
|
|
711
|
-
if (
|
|
712
|
-
fishjamClient.removeTrack(
|
|
717
|
+
track is LocalScreenShareTrack
|
|
718
|
+
} as? LocalScreenShareTrack
|
|
719
|
+
if (screenShareTrack != null) {
|
|
720
|
+
fishjamClient.removeTrack(screenShareTrack.id())
|
|
713
721
|
}
|
|
714
|
-
|
|
722
|
+
setScreenShareTrackState(false)
|
|
715
723
|
emitEndpoints()
|
|
716
724
|
}
|
|
717
725
|
}
|
|
@@ -723,6 +731,11 @@ class RNFishjamClient(
|
|
|
723
731
|
sendEvent(eventName, data)
|
|
724
732
|
}
|
|
725
733
|
|
|
734
|
+
private fun emitWarning(warning: String) {
|
|
735
|
+
val eventName = EmitableEvents.Warning
|
|
736
|
+
emitEvent(eventName, mapOf("message" to warning))
|
|
737
|
+
}
|
|
738
|
+
|
|
726
739
|
private fun emitEndpoints() {
|
|
727
740
|
val eventName = EmitableEvents.PeersUpdate
|
|
728
741
|
val map = mapOf(eventName to getPeers())
|
|
@@ -29,7 +29,7 @@ class CameraConfig : Record {
|
|
|
29
29
|
val quality: String = "VGA169"
|
|
30
30
|
|
|
31
31
|
@Field
|
|
32
|
-
val
|
|
32
|
+
val flipDimensions: Boolean = false
|
|
33
33
|
|
|
34
34
|
@Field
|
|
35
35
|
val videoTrackMetadata: Map<String, Any> = emptyMap()
|
|
@@ -51,12 +51,12 @@ class CameraConfig : Record {
|
|
|
51
51
|
val cameraId: String? = null
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
class
|
|
54
|
+
class ScreenShareOptions : Record {
|
|
55
55
|
@Field
|
|
56
56
|
val quality: String = "HD15"
|
|
57
57
|
|
|
58
58
|
@Field
|
|
59
|
-
val
|
|
59
|
+
val screenShareMetadata: Map<String, Any> = emptyMap()
|
|
60
60
|
|
|
61
61
|
@Field
|
|
62
62
|
val simulcastConfig: SimulcastConfig = SimulcastConfig()
|
|
@@ -109,7 +109,7 @@ class RNFishjamClientModule : Module() {
|
|
|
109
109
|
Events(
|
|
110
110
|
"IsCameraOn",
|
|
111
111
|
"IsMicrophoneOn",
|
|
112
|
-
"
|
|
112
|
+
"IsScreenShareOn",
|
|
113
113
|
"SimulcastConfigUpdate",
|
|
114
114
|
"PeersUpdate",
|
|
115
115
|
"AudioDeviceUpdate",
|
|
@@ -117,7 +117,8 @@ class RNFishjamClientModule : Module() {
|
|
|
117
117
|
"BandwidthEstimation",
|
|
118
118
|
"ReconnectionRetriesLimitReached",
|
|
119
119
|
"ReconnectionStarted",
|
|
120
|
-
"Reconnected"
|
|
120
|
+
"Reconnected",
|
|
121
|
+
"Warning"
|
|
121
122
|
)
|
|
122
123
|
|
|
123
124
|
val rnFishjamClient =
|
|
@@ -199,15 +200,15 @@ class RNFishjamClientModule : Module() {
|
|
|
199
200
|
}
|
|
200
201
|
}
|
|
201
202
|
|
|
202
|
-
AsyncFunction("
|
|
203
|
+
AsyncFunction("handleScreenSharePermission") { promise: Promise ->
|
|
203
204
|
CoroutineScope(Dispatchers.Main).launch {
|
|
204
|
-
rnFishjamClient.
|
|
205
|
+
rnFishjamClient.handleScreenSharePermission(promise)
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
208
|
|
|
208
|
-
AsyncFunction("
|
|
209
|
+
AsyncFunction("toggleScreenShare") Coroutine { screenShareOptions: ScreenShareOptions ->
|
|
209
210
|
withContext(Dispatchers.Main) {
|
|
210
|
-
rnFishjamClient.
|
|
211
|
+
rnFishjamClient.toggleScreenShare(screenShareOptions)
|
|
211
212
|
}
|
|
212
213
|
}
|
|
213
214
|
|
|
@@ -215,8 +216,8 @@ class RNFishjamClientModule : Module() {
|
|
|
215
216
|
return@Property rnFishjamClient.getCaptureDevices()
|
|
216
217
|
}
|
|
217
218
|
|
|
218
|
-
Property("
|
|
219
|
-
return@Property rnFishjamClient.
|
|
219
|
+
Property("isScreenShareOn") {
|
|
220
|
+
return@Property rnFishjamClient.isScreenShareOn
|
|
220
221
|
}
|
|
221
222
|
|
|
222
223
|
AsyncFunction("getPeers") Coroutine { ->
|
|
@@ -243,9 +244,9 @@ class RNFishjamClientModule : Module() {
|
|
|
243
244
|
}
|
|
244
245
|
}
|
|
245
246
|
|
|
246
|
-
AsyncFunction("
|
|
247
|
+
AsyncFunction("updateScreenShareTrackMetadata") Coroutine { metadata: Map<String, Any> ->
|
|
247
248
|
withContext(Dispatchers.Main) {
|
|
248
|
-
rnFishjamClient.
|
|
249
|
+
rnFishjamClient.updateLocalScreenShareTrackMetadata(metadata)
|
|
249
250
|
}
|
|
250
251
|
}
|
|
251
252
|
|
|
@@ -261,21 +262,21 @@ class RNFishjamClientModule : Module() {
|
|
|
261
262
|
rnFishjamClient.stopAudioSwitcher()
|
|
262
263
|
}
|
|
263
264
|
|
|
264
|
-
AsyncFunction("
|
|
265
|
+
AsyncFunction("toggleScreenShareTrackEncoding") Coroutine { encoding: String ->
|
|
265
266
|
withContext(Dispatchers.Main) {
|
|
266
|
-
rnFishjamClient.
|
|
267
|
+
rnFishjamClient.toggleScreenShareTrackEncoding(encoding)
|
|
267
268
|
}
|
|
268
269
|
}
|
|
269
270
|
|
|
270
|
-
AsyncFunction("
|
|
271
|
+
AsyncFunction("setScreenShareTrackBandwidth") Coroutine { bandwidth: Int ->
|
|
271
272
|
withContext(Dispatchers.Main) {
|
|
272
|
-
rnFishjamClient.
|
|
273
|
+
rnFishjamClient.setScreenShareTrackBandwidth(bandwidth)
|
|
273
274
|
}
|
|
274
275
|
}
|
|
275
276
|
|
|
276
|
-
AsyncFunction("
|
|
277
|
+
AsyncFunction("setScreenShareTrackEncodingBandwidth") Coroutine { encoding: String, bandwidth: Int ->
|
|
277
278
|
withContext(Dispatchers.Main) {
|
|
278
|
-
rnFishjamClient.
|
|
279
|
+
rnFishjamClient.setScreenShareTrackEncodingBandwidth(encoding, bandwidth)
|
|
279
280
|
}
|
|
280
281
|
}
|
|
281
282
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { EventEmitter } from 'expo-modules-core';
|
|
1
2
|
import { NativeModule } from 'react-native';
|
|
2
3
|
import type { RTCStats } from './stats/types';
|
|
3
4
|
import type { ForegroundServiceOptions, SimulcastConfig } from './types';
|
|
4
5
|
import type { CameraConfigInternal, Camera } from './hooks/useCamera';
|
|
5
6
|
import type { Participant } from './hooks/useParticipants';
|
|
6
|
-
import type {
|
|
7
|
+
import type { ScreenShareOptionsInternal } from './hooks/useScreenShare';
|
|
7
8
|
import type { ConnectionConfig } from './common/client';
|
|
8
9
|
type Metadata = {
|
|
9
10
|
[key: string]: any;
|
|
@@ -19,22 +20,22 @@ type RNFishjamClient = {
|
|
|
19
20
|
flipCamera: () => Promise<void>;
|
|
20
21
|
switchCamera: (cameraId: string) => Promise<void>;
|
|
21
22
|
cameras: ReadonlyArray<Camera>;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
handleScreenSharePermission: () => Promise<'granted' | 'denied'>;
|
|
24
|
+
toggleScreenShare: (screenShareOptions: Partial<ScreenShareOptionsInternal>) => Promise<void>;
|
|
25
|
+
isScreenShareOn: boolean;
|
|
25
26
|
getPeers: <PeerMetadataType extends Metadata>() => Promise<Participant<PeerMetadataType>[]>;
|
|
26
27
|
updatePeerMetadata: <MetadataType extends Metadata>(metadata: MetadataType) => Promise<void>;
|
|
27
28
|
updateVideoTrackMetadata: <MetadataType extends Metadata>(metadata: MetadataType) => Promise<void>;
|
|
28
29
|
updateAudioTrackMetadata: <MetadataType extends Metadata>(metadata: MetadataType) => Promise<void>;
|
|
29
|
-
|
|
30
|
+
updateScreenShareTrackMetadata: <MetadataType extends Metadata>(metadata: MetadataType) => Promise<void>;
|
|
30
31
|
setOutputAudioDevice: (audioDevice: string) => Promise<void>;
|
|
31
32
|
startAudioSwitcher: () => Promise<void>;
|
|
32
33
|
stopAudioSwitcher: () => Promise<void>;
|
|
33
34
|
selectAudioSessionMode: (sessionMode: string) => Promise<void>;
|
|
34
35
|
showAudioRoutePicker: () => Promise<void>;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
toggleScreenShareTrackEncoding: (encoding: string) => Promise<SimulcastConfig>;
|
|
37
|
+
setScreenShareTrackBandwidth: (bandwidth: number) => Promise<void>;
|
|
38
|
+
setScreenShareTrackEncodingBandwidth: (encoding: string, bandwidth: number) => Promise<void>;
|
|
38
39
|
setTargetTrackEncoding: (trackId: string, encoding: string) => Promise<void>;
|
|
39
40
|
toggleVideoTrackEncoding: (encoding: string) => Promise<SimulcastConfig>;
|
|
40
41
|
setVideoTrackEncodingBandwidth: (encoding: string, bandwidth: number) => Promise<void>;
|
|
@@ -44,6 +45,7 @@ type RNFishjamClient = {
|
|
|
44
45
|
startForegroundService: (options: ForegroundServiceOptions) => void;
|
|
45
46
|
stopForegroundService: () => void;
|
|
46
47
|
};
|
|
48
|
+
export declare const nativeModuleEventEmitter: EventEmitter;
|
|
47
49
|
declare const _default: RNFishjamClient & NativeModule;
|
|
48
50
|
export default _default;
|
|
49
51
|
//# sourceMappingURL=RNFishjamClientModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RNFishjamClientModule.d.ts","sourceRoot":"","sources":["../src/RNFishjamClientModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RNFishjamClientModule.d.ts","sourceRoot":"","sources":["../src/RNFishjamClientModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { requireNativeModule } from 'expo-modules-core';
|
|
1
|
+
import { EventEmitter, requireNativeModule } from 'expo-modules-core';
|
|
2
2
|
const nativeModule = requireNativeModule('RNFishjamClient');
|
|
3
|
+
export const nativeModuleEventEmitter = new EventEmitter(nativeModule);
|
|
3
4
|
export default nativeModule;
|
|
4
5
|
//# sourceMappingURL=RNFishjamClientModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RNFishjamClientModule.js","sourceRoot":"","sources":["../src/RNFishjamClientModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"RNFishjamClientModule.js","sourceRoot":"","sources":["../src/RNFishjamClientModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA0EtE,MAAM,YAAY,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;AAEvE,eAAe,YAA8C,CAAC","sourcesContent":["import { EventEmitter, requireNativeModule } from 'expo-modules-core';\nimport { NativeModule } from 'react-native';\n\nimport type { RTCStats } from './stats/types';\nimport type { ForegroundServiceOptions, SimulcastConfig } from './types';\nimport type { CameraConfigInternal, Camera } from './hooks/useCamera';\nimport type { Participant } from './hooks/useParticipants';\nimport type { ScreenShareOptionsInternal } from './hooks/useScreenShare';\nimport type { ConnectionConfig } from './common/client';\n\ntype Metadata = { [key: string]: any };\n\ntype RNFishjamClient = {\n joinRoom: (\n url: string,\n participantToken: string,\n participantMetadata: Metadata,\n config: ConnectionConfig,\n ) => Promise<void>;\n leaveRoom: () => Promise<void>;\n startCamera: (config: CameraConfigInternal) => Promise<void>;\n isMicrophoneOn: boolean;\n toggleMicrophone: () => Promise<boolean>;\n isCameraOn: boolean;\n toggleCamera: () => Promise<boolean>;\n flipCamera: () => Promise<void>;\n switchCamera: (cameraId: string) => Promise<void>;\n cameras: ReadonlyArray<Camera>;\n handleScreenSharePermission: () => Promise<'granted' | 'denied'>;\n toggleScreenShare: (\n screenShareOptions: Partial<ScreenShareOptionsInternal>,\n ) => Promise<void>;\n isScreenShareOn: boolean;\n getPeers: <PeerMetadataType extends Metadata>() => Promise<\n Participant<PeerMetadataType>[]\n >;\n updatePeerMetadata: <MetadataType extends Metadata>(\n metadata: MetadataType,\n ) => Promise<void>;\n updateVideoTrackMetadata: <MetadataType extends Metadata>(\n metadata: MetadataType,\n ) => Promise<void>;\n updateAudioTrackMetadata: <MetadataType extends Metadata>(\n metadata: MetadataType,\n ) => Promise<void>;\n updateScreenShareTrackMetadata: <MetadataType extends Metadata>(\n metadata: MetadataType,\n ) => Promise<void>;\n setOutputAudioDevice: (audioDevice: string) => Promise<void>;\n startAudioSwitcher: () => Promise<void>;\n stopAudioSwitcher: () => Promise<void>;\n selectAudioSessionMode: (sessionMode: string) => Promise<void>;\n showAudioRoutePicker: () => Promise<void>;\n toggleScreenShareTrackEncoding: (\n encoding: string,\n ) => Promise<SimulcastConfig>;\n setScreenShareTrackBandwidth: (bandwidth: number) => Promise<void>;\n setScreenShareTrackEncodingBandwidth: (\n encoding: string,\n bandwidth: number,\n ) => Promise<void>;\n setTargetTrackEncoding: (trackId: string, encoding: string) => Promise<void>;\n toggleVideoTrackEncoding: (encoding: string) => Promise<SimulcastConfig>;\n setVideoTrackEncodingBandwidth: (\n encoding: string,\n bandwidth: number,\n ) => Promise<void>;\n setVideoTrackBandwidth: (bandwidth: number) => Promise<void>;\n changeWebRTCLoggingSeverity: (severity: string) => Promise<void>;\n getStatistics: () => Promise<RTCStats>;\n startForegroundService: (options: ForegroundServiceOptions) => void;\n stopForegroundService: () => void;\n};\n\nconst nativeModule = requireNativeModule('RNFishjamClient');\nexport const nativeModuleEventEmitter = new EventEmitter(nativeModule);\n\nexport default nativeModule as RNFishjamClient & NativeModule;\n"]}
|
package/build/common/client.d.ts
CHANGED
|
@@ -15,12 +15,15 @@ export type ConnectionConfig = {
|
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
18
|
* @param url fishjam Url
|
|
20
|
-
* @param participantToken
|
|
21
|
-
* @param participantMetadata
|
|
22
|
-
* @param config
|
|
19
|
+
* @param participantToken token received from server (or Room Manager)
|
|
20
|
+
* @param participantMetadata string indexed record with metadata, that will be available to all other participants
|
|
21
|
+
* @param config additional connection configuration
|
|
22
|
+
* @category Connection
|
|
23
|
+
*/
|
|
24
|
+
export declare function joinRoom<ParticipantMetadata extends GenericMetadata = GenericMetadata>(url: string, participantToken: string, participantMetadata?: ParticipantMetadata, config?: ConnectionConfig): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* @category Connection
|
|
23
27
|
*/
|
|
24
|
-
export declare function joinRoom<ParticipantMetadata extends GenericMetadata = GenericMetadata>(url: string, participantToken: string, participantMetadata: ParticipantMetadata, config?: ConnectionConfig): Promise<void>;
|
|
25
28
|
export declare function leaveRoom(): Promise<void>;
|
|
26
29
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,mBAAmB,SAAS,eAAe,GAAG,eAAe,EAE7D,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,mBAAmB,SAAS,eAAe,GAAG,eAAe,EAE7D,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,CAAC,EAAE,mBAAmB,EACzC,MAAM,CAAC,EAAE,gBAAgB,iBAQ1B;AACD;;GAEG;AACH,wBAAsB,SAAS,kBAE9B"}
|
package/build/common/client.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import RNFishjamClientModule from '../RNFishjamClientModule';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
3
|
* @param url fishjam Url
|
|
5
|
-
* @param participantToken
|
|
6
|
-
* @param participantMetadata
|
|
7
|
-
* @param config
|
|
4
|
+
* @param participantToken token received from server (or Room Manager)
|
|
5
|
+
* @param participantMetadata string indexed record with metadata, that will be available to all other participants
|
|
6
|
+
* @param config additional connection configuration
|
|
7
|
+
* @category Connection
|
|
8
8
|
*/
|
|
9
|
-
export async function joinRoom(url, participantToken, participantMetadata, config
|
|
10
|
-
await RNFishjamClientModule.joinRoom(url, participantToken, participantMetadata, config);
|
|
9
|
+
export async function joinRoom(url, participantToken, participantMetadata, config) {
|
|
10
|
+
await RNFishjamClientModule.joinRoom(url, participantToken, participantMetadata ?? {}, config ?? {});
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* @category Connection
|
|
14
|
+
*/
|
|
12
15
|
export async function leaveRoom() {
|
|
13
16
|
await RNFishjamClientModule.leaveRoom();
|
|
14
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAkB7D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAG5B,GAAW,EACX,gBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAkB7D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAG5B,GAAW,EACX,gBAAwB,EACxB,mBAAyC,EACzC,MAAyB;IAEzB,MAAM,qBAAqB,CAAC,QAAQ,CAClC,GAAG,EACH,gBAAgB,EAChB,mBAAmB,IAAI,EAAE,EACzB,MAAM,IAAI,EAAE,CACb,CAAC;AACJ,CAAC;AACD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,qBAAqB,CAAC,SAAS,EAAE,CAAC;AAC1C,CAAC","sourcesContent":["import { GenericMetadata } from '../types';\nimport RNFishjamClientModule from '../RNFishjamClientModule';\n\nexport type ConnectionConfig = {\n /**\n * Configuration for automatic reconnection\n * sdk uses a linear backoff algorithm, that is the formula\n * for the delay of the nth attempt is\n * n * delayMs + initialDelayMs\n *\n * Pass 0 for maxAttempts to disable automatic reconnection\n */\n reconnectConfig?: {\n maxAttempts?: number;\n initialDelayMs?: number;\n delayMs?: number;\n };\n};\n\n/**\n * @param url fishjam Url\n * @param participantToken token received from server (or Room Manager)\n * @param participantMetadata string indexed record with metadata, that will be available to all other participants\n * @param config additional connection configuration\n * @category Connection\n */\nexport async function joinRoom<\n ParticipantMetadata extends GenericMetadata = GenericMetadata,\n>(\n url: string,\n participantToken: string,\n participantMetadata?: ParticipantMetadata,\n config?: ConnectionConfig,\n) {\n await RNFishjamClientModule.joinRoom(\n url,\n participantToken,\n participantMetadata ?? {},\n config ?? {},\n );\n}\n/**\n * @category Connection\n */\nexport async function leaveRoom() {\n await RNFishjamClientModule.leaveRoom();\n}\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { GenericMetadata } from '../types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* @param
|
|
3
|
+
* Updates metadata send to other participants
|
|
4
|
+
* @param participantMetadata string indexed record with metadata, that will be available to all other participants
|
|
5
|
+
* @category Connection
|
|
5
6
|
*/
|
|
6
|
-
export declare function updatePeerMetadata<ParticipantMetadata extends GenericMetadata = GenericMetadata>(
|
|
7
|
+
export declare function updatePeerMetadata<ParticipantMetadata extends GenericMetadata = GenericMetadata>(participantMetadata: ParticipantMetadata): Promise<void>;
|
|
7
8
|
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/common/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/common/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,mBAAmB,SAAS,eAAe,GAAG,eAAe,EAC7D,mBAAmB,EAAE,mBAAmB,iBAEzC"}
|
package/build/common/metadata.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import RNFishjamClientModule from '../RNFishjamClientModule';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* @param
|
|
3
|
+
* Updates metadata send to other participants
|
|
4
|
+
* @param participantMetadata string indexed record with metadata, that will be available to all other participants
|
|
5
|
+
* @category Connection
|
|
5
6
|
*/
|
|
6
|
-
export async function updatePeerMetadata(
|
|
7
|
-
await RNFishjamClientModule.updatePeerMetadata(
|
|
7
|
+
export async function updatePeerMetadata(participantMetadata) {
|
|
8
|
+
await RNFishjamClientModule.updatePeerMetadata(participantMetadata);
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/common/metadata.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAE7D
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/common/metadata.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAEtC,mBAAwC;IACxC,MAAM,qBAAqB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;AACtE,CAAC","sourcesContent":["import { GenericMetadata } from '../types';\nimport RNFishjamClientModule from '../RNFishjamClientModule';\n\n/**\n * Updates metadata send to other participants\n * @param participantMetadata string indexed record with metadata, that will be available to all other participants\n * @category Connection\n */\nexport async function updatePeerMetadata<\n ParticipantMetadata extends GenericMetadata = GenericMetadata,\n>(participantMetadata: ParticipantMetadata) {\n await RNFishjamClientModule.updatePeerMetadata(participantMetadata);\n}\n"]}
|