@videosdk.live/react-sdk 0.3.8 → 0.3.10

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.
@@ -1,7 +1,7 @@
1
1
  import React, { createContext, useEffect, useContext, useState, useRef, useMemo, forwardRef } from 'react';
2
2
  import EventEmitter from 'events';
3
3
  import { VideoSDK } from '@videosdk.live/js-sdk';
4
- export { CameraDeviceInfo, DeviceInfo, MicrophoneDeviceInfo } from '@videosdk.live/js-sdk';
4
+ export { CameraDeviceInfo, DeviceInfo, ExternalE2EEKeyProvider, MicrophoneDeviceInfo } from '@videosdk.live/js-sdk';
5
5
 
6
6
  function _extends() {
7
7
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -101,7 +101,12 @@ var events = {
101
101
  'whiteboard-started': eventPrifix + "-whiteboard-started",
102
102
  'whiteboard-stopped': eventPrifix + "-whiteboard-stopped",
103
103
  'paused-all-streams': eventPrifix + "-paused-all-streams",
104
- 'resumed-all-streams': eventPrifix + "-resumed-all-streams"
104
+ 'resumed-all-streams': eventPrifix + "-resumed-all-streams",
105
+ 'media-relay-started': eventPrifix + "-media-relay-started",
106
+ 'media-relay-stopped': eventPrifix + "-media-relay-stopped",
107
+ 'media-relay-error': eventPrifix + "-media-relay-error",
108
+ 'media-relay-request-response': eventPrifix + "-media-relay-request-response",
109
+ 'media-relay-request-received': eventPrifix + "-media-relay-request-received"
105
110
  };
106
111
  var eventEmitter = new EventEmitter();
107
112
  eventEmitter.setMaxListeners(9999);
@@ -189,7 +194,17 @@ var useMeeting = function useMeeting(_temp) {
189
194
  _ref$onCharacterJoine = _ref.onCharacterJoined,
190
195
  onCharacterJoined = _ref$onCharacterJoine === void 0 ? function () {} : _ref$onCharacterJoine,
191
196
  _ref$onCharacterLeft = _ref.onCharacterLeft,
192
- onCharacterLeft = _ref$onCharacterLeft === void 0 ? function () {} : _ref$onCharacterLeft;
197
+ onCharacterLeft = _ref$onCharacterLeft === void 0 ? function () {} : _ref$onCharacterLeft,
198
+ _ref$onMediaRelayStar = _ref.onMediaRelayStarted,
199
+ onMediaRelayStarted = _ref$onMediaRelayStar === void 0 ? function () {} : _ref$onMediaRelayStar,
200
+ _ref$onMediaRelayStop = _ref.onMediaRelayStopped,
201
+ onMediaRelayStopped = _ref$onMediaRelayStop === void 0 ? function () {} : _ref$onMediaRelayStop,
202
+ _ref$onMediaRelayErro = _ref.onMediaRelayError,
203
+ onMediaRelayError = _ref$onMediaRelayErro === void 0 ? function () {} : _ref$onMediaRelayErro,
204
+ _ref$onMediaRelayRequ = _ref.onMediaRelayRequestResponse,
205
+ onMediaRelayRequestResponse = _ref$onMediaRelayRequ === void 0 ? function () {} : _ref$onMediaRelayRequ,
206
+ _ref$onMediaRelayRequ2 = _ref.onMediaRelayRequestReceived,
207
+ onMediaRelayRequestReceived = _ref$onMediaRelayRequ2 === void 0 ? function () {} : _ref$onMediaRelayRequ2;
193
208
  useEffect(function () {
194
209
  eventEmitter.on(events['participant-joined'], onParticipantJoined);
195
210
  eventEmitter.on(events['participant-left'], onParticipantLeft);
@@ -225,6 +240,11 @@ var useMeeting = function useMeeting(_temp) {
225
240
  eventEmitter.on(events['participant-mode-changed'], onParticipantModeChanged);
226
241
  eventEmitter.on(events['character-joined'], onCharacterJoined);
227
242
  eventEmitter.on(events['character-left'], onCharacterLeft);
243
+ eventEmitter.on(events['media-relay-started'], onMediaRelayStarted);
244
+ eventEmitter.on(events['media-relay-stopped'], onMediaRelayStopped);
245
+ eventEmitter.on(events['media-relay-error'], onMediaRelayError);
246
+ eventEmitter.on(events['media-relay-request-response'], onMediaRelayRequestResponse);
247
+ eventEmitter.on(events['media-relay-request-received'], onMediaRelayRequestReceived);
228
248
  return function () {
229
249
  eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);
230
250
  eventEmitter.off(events['participant-joined'], onParticipantJoined);
@@ -260,6 +280,11 @@ var useMeeting = function useMeeting(_temp) {
260
280
  eventEmitter.off(events['participant-mode-changed'], onParticipantModeChanged);
261
281
  eventEmitter.off(events['character-joined'], onCharacterJoined);
262
282
  eventEmitter.off(events['character-left'], onCharacterLeft);
283
+ eventEmitter.off(events['media-relay-started'], onMediaRelayStarted);
284
+ eventEmitter.off(events['media-relay-stopped'], onMediaRelayStopped);
285
+ eventEmitter.off(events['media-relay-error'], onMediaRelayError);
286
+ eventEmitter.off(events['media-relay-request-response'], onMediaRelayRequestResponse);
287
+ eventEmitter.off(events['media-relay-request-received'], onMediaRelayRequestReceived);
263
288
  };
264
289
  }, []);
265
290
  return useContext(MeetingProviderContex);
@@ -333,7 +358,17 @@ var MeetingConsumer = function MeetingConsumer(_ref2) {
333
358
  _ref2$onCharacterJoin = _ref2.onCharacterJoined,
334
359
  onCharacterJoined = _ref2$onCharacterJoin === void 0 ? function () {} : _ref2$onCharacterJoin,
335
360
  _ref2$onCharacterLeft = _ref2.onCharacterLeft,
336
- onCharacterLeft = _ref2$onCharacterLeft === void 0 ? function () {} : _ref2$onCharacterLeft;
361
+ onCharacterLeft = _ref2$onCharacterLeft === void 0 ? function () {} : _ref2$onCharacterLeft,
362
+ _ref2$onMediaRelaySta = _ref2.onMediaRelayStarted,
363
+ onMediaRelayStarted = _ref2$onMediaRelaySta === void 0 ? function () {} : _ref2$onMediaRelaySta,
364
+ _ref2$onMediaRelaySto = _ref2.onMediaRelayStopped,
365
+ onMediaRelayStopped = _ref2$onMediaRelaySto === void 0 ? function () {} : _ref2$onMediaRelaySto,
366
+ _ref2$onMediaRelayErr = _ref2.onMediaRelayError,
367
+ onMediaRelayError = _ref2$onMediaRelayErr === void 0 ? function () {} : _ref2$onMediaRelayErr,
368
+ _ref2$onMediaRelayReq = _ref2.onMediaRelayRequestResponse,
369
+ onMediaRelayRequestResponse = _ref2$onMediaRelayReq === void 0 ? function () {} : _ref2$onMediaRelayReq,
370
+ _ref2$onMediaRelayReq2 = _ref2.onMediaRelayRequestReceived,
371
+ onMediaRelayRequestReceived = _ref2$onMediaRelayReq2 === void 0 ? function () {} : _ref2$onMediaRelayReq2;
337
372
  useEffect(function () {
338
373
  eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);
339
374
  eventEmitter.on(events['participant-joined'], onParticipantJoined);
@@ -369,6 +404,11 @@ var MeetingConsumer = function MeetingConsumer(_ref2) {
369
404
  eventEmitter.on(events['participant-mode-changed'], onParticipantModeChanged);
370
405
  eventEmitter.on(events['character-joined'], onCharacterJoined);
371
406
  eventEmitter.on(events['character-left'], onCharacterLeft);
407
+ eventEmitter.on(events['media-relay-started'], onMediaRelayStarted);
408
+ eventEmitter.on(events['media-relay-stopped'], onMediaRelayStopped);
409
+ eventEmitter.on(events['media-relay-error'], onMediaRelayError);
410
+ eventEmitter.on(events['media-relay-request-response'], onMediaRelayRequestResponse);
411
+ eventEmitter.on(events['media-relay-request-received'], onMediaRelayRequestReceived);
372
412
  return function () {
373
413
  eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);
374
414
  eventEmitter.off(events['participant-joined'], onParticipantJoined);
@@ -404,12 +444,17 @@ var MeetingConsumer = function MeetingConsumer(_ref2) {
404
444
  eventEmitter.off(events['participant-mode-changed'], onParticipantModeChanged);
405
445
  eventEmitter.off(events['character-joined'], onCharacterJoined);
406
446
  eventEmitter.off(events['character-left'], onCharacterLeft);
447
+ eventEmitter.off(events['media-relay-started'], onMediaRelayStarted);
448
+ eventEmitter.off(events['media-relay-stopped'], onMediaRelayStopped);
449
+ eventEmitter.off(events['media-relay-error'], onMediaRelayError);
450
+ eventEmitter.off(events['media-relay-request-response'], onMediaRelayRequestResponse);
451
+ eventEmitter.off(events['media-relay-request-received'], onMediaRelayRequestReceived);
407
452
  };
408
453
  }, []);
409
454
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MeetingProviderContex.Consumer, null, children));
410
455
  };
411
456
 
412
- var version = "0.3.0";
457
+ var version = "0.3.10";
413
458
 
414
459
  var MeetingProvider = function MeetingProvider(_ref) {
415
460
  var children = _ref.children,
@@ -417,7 +462,8 @@ var MeetingProvider = function MeetingProvider(_ref) {
417
462
  token = _ref.token,
418
463
  joinWithoutUserInteraction = _ref.joinWithoutUserInteraction,
419
464
  _reinitialiseMeetingOnConfigChange = _ref.reinitialiseMeetingOnConfigChange,
420
- deviceInfo = _ref.deviceInfo;
465
+ deviceInfo = _ref.deviceInfo,
466
+ keyProvider = _ref.keyProvider;
421
467
  var _useState = useState(null),
422
468
  meeting = _useState[0],
423
469
  setMeeting = _useState[1];
@@ -493,6 +539,7 @@ var MeetingProvider = function MeetingProvider(_ref) {
493
539
  var localWebcamOnRef = useRef();
494
540
  var localScreenShareOnRef = useRef();
495
541
  var isRecordingRef = useRef();
542
+ var keyProviderRef = useRef(keyProvider);
496
543
  var configRef = useRef(config);
497
544
  var tokenRef = useRef(token);
498
545
  var joinedOnFirstRender = useRef(false);
@@ -839,6 +886,21 @@ var MeetingProvider = function MeetingProvider(_ref) {
839
886
  }
840
887
  eventEmitter.emit(events['participant-mode-changed'], data);
841
888
  };
889
+ var _handle_media_relay_started = function _handle_media_relay_started(data) {
890
+ eventEmitter.emit(events['media-relay-started'], data);
891
+ };
892
+ var _handle_media_relay_stopped = function _handle_media_relay_stopped(data) {
893
+ eventEmitter.emit(events['media-relay-stopped'], data);
894
+ };
895
+ var _handle_media_relay_error = function _handle_media_relay_error(data) {
896
+ eventEmitter.emit(events['media-relay-error'], data);
897
+ };
898
+ var _handle_media_relay_request_response = function _handle_media_relay_request_response(data) {
899
+ eventEmitter.emit(events['media-relay-request-response'], data);
900
+ };
901
+ var _handle_media_relay_request_received = function _handle_media_relay_request_received(data) {
902
+ eventEmitter.emit(events['media-relay-request-received'], data);
903
+ };
842
904
  var join = function join() {
843
905
  var meeting = VideoSDK && VideoSDK.initMeeting(configRef.current);
844
906
  setMeeting(meeting);
@@ -887,6 +949,11 @@ var MeetingProvider = function MeetingProvider(_ref) {
887
949
  meeting.on('whiteboard-stopped', _handle_whiteboard_stopped);
888
950
  meeting.on('character-joined', _handle_character_joined);
889
951
  meeting.on('character-left', _handle_character_left);
952
+ meeting.on('media-relay-started', _handle_media_relay_started);
953
+ meeting.on('media-relay-stopped', _handle_media_relay_stopped);
954
+ meeting.on('media-relay-error', _handle_media_relay_error);
955
+ meeting.on('media-relay-request-response', _handle_media_relay_request_response);
956
+ meeting.on('media-relay-request-received', _handle_media_relay_request_received);
890
957
  meeting.localParticipant.on('stream-enabled', _handle_localParticipant_stream_enabled);
891
958
  meeting.localParticipant.on('stream-disabled', _handle_localParticipant_stream_disabled);
892
959
  meeting.join();
@@ -1121,8 +1188,27 @@ var MeetingProvider = function MeetingProvider(_ref) {
1121
1188
  meeting.disableAdaptiveSubscription();
1122
1189
  }
1123
1190
  };
1124
- var seekVideo = function seekVideo(_ref8) {
1125
- var currentTime = _ref8.currentTime;
1191
+ var requestMediaRelay = function requestMediaRelay(_ref8) {
1192
+ var destinationMeetingId = _ref8.destinationMeetingId,
1193
+ token = _ref8.token,
1194
+ kinds = _ref8.kinds;
1195
+ var meeting = meetingRef.current;
1196
+ if (meeting) {
1197
+ meeting.requestMediaRelay({
1198
+ destinationMeetingId: destinationMeetingId,
1199
+ token: token,
1200
+ kinds: kinds
1201
+ });
1202
+ }
1203
+ };
1204
+ var stopMediaRelay = function stopMediaRelay(destinationMeetingId) {
1205
+ var meeting = meetingRef.current;
1206
+ if (meeting) {
1207
+ meeting.stopMediaRelay(destinationMeetingId);
1208
+ }
1209
+ };
1210
+ var seekVideo = function seekVideo(_ref9) {
1211
+ var currentTime = _ref9.currentTime;
1126
1212
  var meeting = meetingRef.current;
1127
1213
  if (meeting) {
1128
1214
  meeting.seekVideo({
@@ -1142,9 +1228,9 @@ var MeetingProvider = function MeetingProvider(_ref) {
1142
1228
  meeting.stopLivestream();
1143
1229
  }
1144
1230
  };
1145
- var connectTo = function connectTo(_ref9) {
1146
- var meetingId = _ref9.meetingId,
1147
- payload = _ref9.payload;
1231
+ var connectTo = function connectTo(_ref10) {
1232
+ var meetingId = _ref10.meetingId,
1233
+ payload = _ref10.payload;
1148
1234
  try {
1149
1235
  var _meeting3 = meetingRef.current;
1150
1236
  var _temp = function () {
@@ -1174,6 +1260,7 @@ var MeetingProvider = function MeetingProvider(_ref) {
1174
1260
  };
1175
1261
  var initSDK = function initSDK() {
1176
1262
  VideoSDK.config(tokenRef.current);
1263
+ keyProviderRef.current && VideoSDK.setKeyProvider(keyProviderRef.current);
1177
1264
  if (deviceInfo) {
1178
1265
  VideoSDK.analytics(deviceInfo);
1179
1266
  } else {
@@ -1260,7 +1347,9 @@ var MeetingProvider = function MeetingProvider(_ref) {
1260
1347
  startHls: startHls,
1261
1348
  stopHls: stopHls,
1262
1349
  enableAdaptiveSubscription: enableAdaptiveSubscription,
1263
- disableAdaptiveSubscription: disableAdaptiveSubscription
1350
+ disableAdaptiveSubscription: disableAdaptiveSubscription,
1351
+ requestMediaRelay: requestMediaRelay,
1352
+ stopMediaRelay: stopMediaRelay
1264
1353
  }
1265
1354
  }, children);
1266
1355
  };
@@ -1278,7 +1367,15 @@ var useParticipant = function useParticipant(participantId, _temp) {
1278
1367
  _ref$onStreamPaused = _ref.onStreamPaused,
1279
1368
  onStreamPaused = _ref$onStreamPaused === void 0 ? function () {} : _ref$onStreamPaused,
1280
1369
  _ref$onStreamResumed = _ref.onStreamResumed,
1281
- onStreamResumed = _ref$onStreamResumed === void 0 ? function () {} : _ref$onStreamResumed;
1370
+ onStreamResumed = _ref$onStreamResumed === void 0 ? function () {} : _ref$onStreamResumed,
1371
+ _ref$onProducerAdded = _ref.onProducerAdded,
1372
+ onProducerAdded = _ref$onProducerAdded === void 0 ? function () {} : _ref$onProducerAdded,
1373
+ _ref$onProducerRemove = _ref.onProducerRemoved,
1374
+ onProducerRemoved = _ref$onProducerRemove === void 0 ? function () {} : _ref$onProducerRemove,
1375
+ _ref$onConsumerAdded = _ref.onConsumerAdded,
1376
+ onConsumerAdded = _ref$onConsumerAdded === void 0 ? function () {} : _ref$onConsumerAdded,
1377
+ _ref$onConsumerRemove = _ref.onConsumerRemoved,
1378
+ onConsumerRemoved = _ref$onConsumerRemove === void 0 ? function () {} : _ref$onConsumerRemove;
1282
1379
  var _useState = useState(null),
1283
1380
  webcamStream = _useState[0],
1284
1381
  setwebcamStream = _useState[1];
@@ -1415,6 +1512,9 @@ var useParticipant = function useParticipant(participantId, _temp) {
1415
1512
  var setViewPort = function setViewPort(width, height) {
1416
1513
  participant === null || participant === void 0 ? void 0 : participant.setViewPort(width, height);
1417
1514
  };
1515
+ var setScreenShareQuality = function setScreenShareQuality(quality) {
1516
+ participant === null || participant === void 0 ? void 0 : participant.setScreenShareQuality(quality);
1517
+ };
1418
1518
  var enableMic = function enableMic() {
1419
1519
  participant === null || participant === void 0 ? void 0 : participant.enableMic();
1420
1520
  };
@@ -1469,9 +1569,6 @@ var useParticipant = function useParticipant(participantId, _temp) {
1469
1569
  var stopConsumingMicStreams = function stopConsumingMicStreams() {
1470
1570
  participant === null || participant === void 0 ? void 0 : participant.stopConsumingMicStreams();
1471
1571
  };
1472
- var switchTo = function switchTo(data) {
1473
- return Promise.resolve(participant === null || participant === void 0 ? void 0 : participant.switchTo(data)).then(function () {});
1474
- };
1475
1572
  useEffect(function () {
1476
1573
  var streams = participant === null || participant === void 0 ? void 0 : participant.streams;
1477
1574
  if (streams) {
@@ -1495,6 +1592,18 @@ var useParticipant = function useParticipant(participantId, _temp) {
1495
1592
  });
1496
1593
  participant === null || participant === void 0 ? void 0 : participant.on('media-status-changed', _handleMediaStatusChanged);
1497
1594
  participant === null || participant === void 0 ? void 0 : participant.on('video-quality-changed', _handleVideoQualityChanged);
1595
+ participant === null || participant === void 0 ? void 0 : participant.on('producer-added', function (data) {
1596
+ onProducerAdded(data);
1597
+ });
1598
+ participant === null || participant === void 0 ? void 0 : participant.on('producer-removed', function (data) {
1599
+ onProducerRemoved(data);
1600
+ });
1601
+ participant === null || participant === void 0 ? void 0 : participant.on('consumer-added', function (data) {
1602
+ onConsumerAdded(data);
1603
+ });
1604
+ participant === null || participant === void 0 ? void 0 : participant.on('consumer-removed', function (data) {
1605
+ onConsumerRemoved(data);
1606
+ });
1498
1607
  eventEmitter.on(events['participant-mode-changed'], _handleParticipantModeChanged);
1499
1608
  return function () {
1500
1609
  participant === null || participant === void 0 ? void 0 : participant.off('stream-enabled', _handleStreamEnabled);
@@ -1525,6 +1634,7 @@ var useParticipant = function useParticipant(participantId, _temp) {
1525
1634
  stopConsumingMicStreams: stopConsumingMicStreams,
1526
1635
  stopConsumingWebcamStreams: stopConsumingWebcamStreams,
1527
1636
  setQuality: setQuality,
1637
+ setScreenShareQuality: setScreenShareQuality,
1528
1638
  setViewPort: setViewPort,
1529
1639
  enableMic: enableMic,
1530
1640
  disableMic: disableMic,
@@ -1534,7 +1644,6 @@ var useParticipant = function useParticipant(participantId, _temp) {
1534
1644
  pin: pin,
1535
1645
  unpin: unpin,
1536
1646
  remove: remove,
1537
- switchTo: switchTo,
1538
1647
  getAudioStats: getAudioStats,
1539
1648
  getVideoStats: getVideoStats,
1540
1649
  getShareStats: getShareStats,
@@ -1823,6 +1932,8 @@ var useCharacter = function useCharacter(_ref, _temp) {
1823
1932
  onUserMessage = _ref2$onUserMessage === void 0 ? function () {} : _ref2$onUserMessage,
1824
1933
  _ref2$onData = _ref2.onData,
1825
1934
  onData = _ref2$onData === void 0 ? function () {} : _ref2$onData,
1935
+ _ref2$onError = _ref2.onError,
1936
+ onError = _ref2$onError === void 0 ? function () {} : _ref2$onError,
1826
1937
  _ref2$onCharacterJoin = _ref2.onCharacterJoined,
1827
1938
  onCharacterJoined = _ref2$onCharacterJoin === void 0 ? function () {} : _ref2$onCharacterJoin,
1828
1939
  _ref2$onCharacterLeft = _ref2.onCharacterLeft,
@@ -1914,6 +2025,9 @@ var useCharacter = function useCharacter(_ref, _temp) {
1914
2025
  var _handleOnData = function _handleOnData(topic, d) {
1915
2026
  onData(topic, d);
1916
2027
  };
2028
+ var _handleOnError = function _handleOnError(d) {
2029
+ onError(d);
2030
+ };
1917
2031
  var _handleCharacterJoined = function _handleCharacterJoined() {
1918
2032
  onCharacterJoined();
1919
2033
  };
@@ -1994,6 +2108,7 @@ var useCharacter = function useCharacter(_ref, _temp) {
1994
2108
  character === null || character === void 0 ? void 0 : character.on('character-message', _handleCharacterMessage);
1995
2109
  character === null || character === void 0 ? void 0 : character.on('user-message', _handleUserMessage);
1996
2110
  character === null || character === void 0 ? void 0 : character.on('data', _handleOnData);
2111
+ character === null || character === void 0 ? void 0 : character.on('error', _handleOnError);
1997
2112
  character === null || character === void 0 ? void 0 : character.on('stream-enabled', _handleStreamEnabled);
1998
2113
  character === null || character === void 0 ? void 0 : character.on('stream-disabled', _handleStreamDisabled);
1999
2114
  character === null || character === void 0 ? void 0 : character.on('media-status-changed', _handleMediaStatusChanged);
@@ -2005,6 +2120,7 @@ var useCharacter = function useCharacter(_ref, _temp) {
2005
2120
  character === null || character === void 0 ? void 0 : character.off('character-message', _handleCharacterMessage);
2006
2121
  character === null || character === void 0 ? void 0 : character.off('user-message', _handleUserMessage);
2007
2122
  character === null || character === void 0 ? void 0 : character.off('data', _handleOnData);
2123
+ character === null || character === void 0 ? void 0 : character.off('error', _handleOnError);
2008
2124
  character === null || character === void 0 ? void 0 : character.off('stream-enabled', _handleStreamEnabled);
2009
2125
  character === null || character === void 0 ? void 0 : character.off('stream-disabled', _handleStreamDisabled);
2010
2126
  character === null || character === void 0 ? void 0 : character.off('media-status-changed', _handleMediaStatusChanged);
@@ -2148,12 +2264,15 @@ var createScreenShareVideoTrack = function createScreenShareVideoTrack(_ref2) {
2148
2264
  _ref2$optimizationMod = _ref2.optimizationMode,
2149
2265
  optimizationMode = _ref2$optimizationMod === void 0 ? undefined : _ref2$optimizationMod,
2150
2266
  _ref2$withAudio = _ref2.withAudio,
2151
- withAudio = _ref2$withAudio === void 0 ? 'enable' : _ref2$withAudio;
2267
+ withAudio = _ref2$withAudio === void 0 ? 'enable' : _ref2$withAudio,
2268
+ _ref2$multiStream = _ref2.multiStream,
2269
+ multiStream = _ref2$multiStream === void 0 ? false : _ref2$multiStream;
2152
2270
  try {
2153
2271
  return Promise.resolve(VideoSDK.createScreenShareVideoTrack({
2154
2272
  encoderConfig: encoderConfig,
2155
2273
  optimizationMode: optimizationMode,
2156
- withAudio: withAudio
2274
+ withAudio: withAudio,
2275
+ multiStream: multiStream
2157
2276
  }));
2158
2277
  } catch (e) {
2159
2278
  return Promise.reject(e);
@@ -2204,27 +2323,28 @@ var withAdaptiveObservers = function withAdaptiveObservers(VideoPlayerComponent)
2204
2323
  var resizeObserverRef = useRef(null);
2205
2324
  var _useParticipant = useParticipant(participantId),
2206
2325
  participant = _useParticipant.participant;
2326
+ var _useMeeting = useMeeting(),
2327
+ localParticipant = _useMeeting.localParticipant;
2207
2328
  useEffect(function () {
2208
- if (type === 'share' || !ref.current || !participant) return;
2329
+ if (type === 'share' || !ref.current || !participant || participantId === localParticipant.id) return;
2209
2330
  var element = ref.current;
2210
2331
  if (!element || !participant) return;
2211
2332
  if (observerRef.current) observerRef.current.disconnect();
2212
2333
  var handleIntersectionChange = debounce(function (entries) {
2213
- for (var _iterator = _createForOfIteratorHelperLoose(entries), _step; !(_step = _iterator()).done;) {
2214
- var entry = _step.value;
2215
- if (entry.intersectionRatio > 0) {
2216
- for (var _iterator2 = _createForOfIteratorHelperLoose(participant.streams.values()), _step2; !(_step2 = _iterator2()).done;) {
2217
- var stream = _step2.value;
2218
- if (stream.kind === 'video' && stream.pausedBy !== 'SUB_MANAGER') {
2219
- stream.resume();
2220
- }
2334
+ if (!Array.isArray(entries) || entries.length === 0) return;
2335
+ var entry = entries[entries.length - 1];
2336
+ if (entry.intersectionRatio > 0) {
2337
+ for (var _iterator = _createForOfIteratorHelperLoose(participant.streams.values()), _step; !(_step = _iterator()).done;) {
2338
+ var stream = _step.value;
2339
+ if (stream.kind === 'video' && stream.pausedBy !== 'SUB_MANAGER') {
2340
+ stream.resume();
2221
2341
  }
2222
- } else {
2223
- for (var _iterator3 = _createForOfIteratorHelperLoose(participant.streams.values()), _step3; !(_step3 = _iterator3()).done;) {
2224
- var _stream = _step3.value;
2225
- if (_stream.kind === 'video') {
2226
- _stream.pause();
2227
- }
2342
+ }
2343
+ } else {
2344
+ for (var _iterator2 = _createForOfIteratorHelperLoose(participant.streams.values()), _step2; !(_step2 = _iterator2()).done;) {
2345
+ var _stream = _step2.value;
2346
+ if (_stream.kind === 'video') {
2347
+ _stream.pause();
2228
2348
  }
2229
2349
  }
2230
2350
  }
@@ -2285,6 +2405,9 @@ var VideoSDKPlayer = forwardRef(function (_ref5, ref) {
2285
2405
  var mediaStream = new MediaStream();
2286
2406
  mediaStream.addTrack(stream.track);
2287
2407
  videoRef.current.srcObject = mediaStream;
2408
+ videoRef.current.setAttribute('playsinline', '');
2409
+ videoRef.current.setAttribute('x5-playsinline', '');
2410
+ videoRef.current.setAttribute('webkit-playsinline', '');
2288
2411
  videoRef.current.play()["catch"](function (error) {
2289
2412
  return console.error('videoRef.current.play() failed', error);
2290
2413
  });