@stream-io/video-react-sdk 0.3.37 → 0.3.38

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/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ### [0.3.38](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-0.3.37...@stream-io/video-react-sdk-0.3.38) (2023-10-06)
6
+
7
+ ### Dependency Updates
8
+
9
+ * `@stream-io/video-client` updated to version `0.3.30`
10
+ * `@stream-io/video-react-bindings` updated to version `0.2.31`
11
+
12
+ ### Features
13
+
14
+ * ScreenShare Audio support ([#1118](https://github.com/GetStream/stream-video-js/issues/1118)) ([5b63e1c](https://github.com/GetStream/stream-video-js/commit/5b63e1c5f52c76e3761e6907bd3786c19f0e5c6d))
15
+
5
16
  ### [0.3.37](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-0.3.36...@stream-io/video-react-sdk-0.3.37) (2023-10-05)
6
17
 
7
18
  ### Dependency Updates
package/README.md CHANGED
@@ -58,8 +58,8 @@ Here are some of the features we support:
58
58
  - [x] Enhanced device management API
59
59
  - [x] Composite layout for streaming and recording
60
60
  - [x] Livestream Player
61
- - [ ] Screenshare Audio
62
- - [ ] Screen-sharing resolution and FPS control
61
+ - [x] Screenshare Audio
62
+ - [x] Screen-sharing bitrate and FPS control
63
63
  - [ ] Fast-reconnects
64
64
  - [ ] New Device Management API
65
65
  - [x] SFU retries
@@ -39,46 +39,40 @@ const ToggleButton = forwardRef((props, ref) => {
39
39
  export const ParticipantActionsContextMenu = ({ participant, participantViewElement, videoElement, }) => {
40
40
  const [fullscreenModeOn, setFullscreenModeOn] = useState(!!document.fullscreenElement);
41
41
  const [pictureInPictureElement, setPictureInPictureElement] = useState(document.pictureInPictureElement);
42
- const activeCall = useCall();
42
+ const call = useCall();
43
43
  const { t } = useI18n();
44
44
  const { pin, publishedTracks, sessionId, userId } = participant;
45
45
  const hasAudio = publishedTracks.includes(SfuModels.TrackType.AUDIO);
46
46
  const hasVideo = publishedTracks.includes(SfuModels.TrackType.VIDEO);
47
47
  const hasScreenShare = publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE);
48
- const blockUser = () => {
49
- activeCall === null || activeCall === void 0 ? void 0 : activeCall.blockUser(userId);
50
- };
51
- const muteAudio = () => {
52
- activeCall === null || activeCall === void 0 ? void 0 : activeCall.muteUser(userId, 'audio');
53
- };
54
- const muteVideo = () => {
55
- activeCall === null || activeCall === void 0 ? void 0 : activeCall.muteUser(userId, 'video');
56
- };
57
- const muteScreenShare = () => {
58
- activeCall === null || activeCall === void 0 ? void 0 : activeCall.muteUser(userId, 'screenshare');
59
- };
48
+ const hasScreenShareAudio = publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE_AUDIO);
49
+ const blockUser = () => call === null || call === void 0 ? void 0 : call.blockUser(userId);
50
+ const muteAudio = () => call === null || call === void 0 ? void 0 : call.muteUser(userId, 'audio');
51
+ const muteVideo = () => call === null || call === void 0 ? void 0 : call.muteUser(userId, 'video');
52
+ const muteScreenShare = () => call === null || call === void 0 ? void 0 : call.muteUser(userId, 'screenshare');
53
+ const muteScreenShareAudio = () => call === null || call === void 0 ? void 0 : call.muteUser(userId, 'screenshare_audio');
60
54
  const grantPermission = (permission) => () => {
61
- activeCall === null || activeCall === void 0 ? void 0 : activeCall.updateUserPermissions({
55
+ call === null || call === void 0 ? void 0 : call.updateUserPermissions({
62
56
  user_id: userId,
63
57
  grant_permissions: [permission],
64
58
  });
65
59
  };
66
60
  const revokePermission = (permission) => () => {
67
- activeCall === null || activeCall === void 0 ? void 0 : activeCall.updateUserPermissions({
61
+ call === null || call === void 0 ? void 0 : call.updateUserPermissions({
68
62
  user_id: userId,
69
63
  revoke_permissions: [permission],
70
64
  });
71
65
  };
72
66
  const toggleParticipantPinnedAt = () => {
73
67
  if (pin) {
74
- activeCall === null || activeCall === void 0 ? void 0 : activeCall.unpin(sessionId);
68
+ call === null || call === void 0 ? void 0 : call.unpin(sessionId);
75
69
  }
76
70
  else {
77
- activeCall === null || activeCall === void 0 ? void 0 : activeCall.pin(sessionId);
71
+ call === null || call === void 0 ? void 0 : call.pin(sessionId);
78
72
  }
79
73
  };
80
74
  const pinForEveryone = () => {
81
- activeCall === null || activeCall === void 0 ? void 0 : activeCall.pinForEveryone({
75
+ call === null || call === void 0 ? void 0 : call.pinForEveryone({
82
76
  user_id: userId,
83
77
  session_id: sessionId,
84
78
  }).catch((err) => {
@@ -86,7 +80,7 @@ export const ParticipantActionsContextMenu = ({ participant, participantViewElem
86
80
  });
87
81
  };
88
82
  const unpinForEveryone = () => {
89
- activeCall === null || activeCall === void 0 ? void 0 : activeCall.unpinForEveryone({
83
+ call === null || call === void 0 ? void 0 : call.unpinForEveryone({
90
84
  user_id: userId,
91
85
  session_id: sessionId,
92
86
  }).catch((err) => {
@@ -116,13 +110,14 @@ export const ParticipantActionsContextMenu = ({ participant, participantViewElem
116
110
  };
117
111
  }, [videoElement]);
118
112
  const togglePictureInPicture = () => {
119
- if (videoElement && pictureInPictureElement !== videoElement)
113
+ if (videoElement && pictureInPictureElement !== videoElement) {
120
114
  return videoElement
121
115
  .requestPictureInPicture()
122
116
  .catch(console.error);
117
+ }
123
118
  document.exitPictureInPicture().catch(console.error);
124
119
  };
125
- return (_jsxs(GenericMenu, { children: [_jsxs(GenericMenuButtonItem, Object.assign({ onClick: toggleParticipantPinnedAt, disabled: pin && !pin.isLocalPin }, { children: [_jsx(Icon, { icon: "pin" }), pin ? t('Unpin') : t('Pin')] })), _jsxs(Restricted, Object.assign({ requiredGrants: [OwnCapability.PIN_FOR_EVERYONE] }, { children: [_jsxs(GenericMenuButtonItem, Object.assign({ onClick: pinForEveryone, disabled: pin && !pin.isLocalPin }, { children: [_jsx(Icon, { icon: "pin" }), t('Pin for everyone')] })), _jsxs(GenericMenuButtonItem, Object.assign({ onClick: unpinForEveryone, disabled: !pin || pin.isLocalPin }, { children: [_jsx(Icon, { icon: "pin" }), t('Unpin for everyone')] }))] })), _jsx(Restricted, Object.assign({ requiredGrants: [OwnCapability.BLOCK_USERS] }, { children: _jsxs(GenericMenuButtonItem, Object.assign({ onClick: blockUser }, { children: [_jsx(Icon, { icon: "not-allowed" }), t('Block')] })) })), _jsxs(Restricted, Object.assign({ requiredGrants: [OwnCapability.MUTE_USERS] }, { children: [_jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasVideo, onClick: muteVideo }, { children: [_jsx(Icon, { icon: "camera-off-outline" }), t('Turn off video')] })), _jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasScreenShare, onClick: muteScreenShare }, { children: [_jsx(Icon, { icon: "screen-share-off" }), t('Turn off screen share')] })), _jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasAudio, onClick: muteAudio }, { children: [_jsx(Icon, { icon: "no-audio" }), t('Mute audio')] }))] })), participantViewElement && (_jsx(GenericMenuButtonItem, Object.assign({ onClick: toggleFullscreenMode }, { children: t('{{ direction }} fullscreen', {
120
+ return (_jsxs(GenericMenu, { children: [_jsxs(GenericMenuButtonItem, Object.assign({ onClick: toggleParticipantPinnedAt, disabled: pin && !pin.isLocalPin }, { children: [_jsx(Icon, { icon: "pin" }), pin ? t('Unpin') : t('Pin')] })), _jsxs(Restricted, Object.assign({ requiredGrants: [OwnCapability.PIN_FOR_EVERYONE] }, { children: [_jsxs(GenericMenuButtonItem, Object.assign({ onClick: pinForEveryone, disabled: pin && !pin.isLocalPin }, { children: [_jsx(Icon, { icon: "pin" }), t('Pin for everyone')] })), _jsxs(GenericMenuButtonItem, Object.assign({ onClick: unpinForEveryone, disabled: !pin || pin.isLocalPin }, { children: [_jsx(Icon, { icon: "pin" }), t('Unpin for everyone')] }))] })), _jsx(Restricted, Object.assign({ requiredGrants: [OwnCapability.BLOCK_USERS] }, { children: _jsxs(GenericMenuButtonItem, Object.assign({ onClick: blockUser }, { children: [_jsx(Icon, { icon: "not-allowed" }), t('Block')] })) })), _jsxs(Restricted, Object.assign({ requiredGrants: [OwnCapability.MUTE_USERS] }, { children: [_jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasVideo, onClick: muteVideo }, { children: [_jsx(Icon, { icon: "camera-off-outline" }), t('Turn off video')] })), _jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasScreenShare, onClick: muteScreenShare }, { children: [_jsx(Icon, { icon: "screen-share-off" }), t('Turn off screen share')] })), _jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasAudio, onClick: muteAudio }, { children: [_jsx(Icon, { icon: "no-audio" }), t('Mute audio')] })), _jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasScreenShareAudio, onClick: muteScreenShareAudio }, { children: [_jsx(Icon, { icon: "no-audio" }), t('Mute screen share audio')] }))] })), participantViewElement && (_jsx(GenericMenuButtonItem, Object.assign({ onClick: toggleFullscreenMode }, { children: t('{{ direction }} fullscreen', {
126
121
  direction: fullscreenModeOn ? t('Leave') : t('Enter'),
127
122
  }) }))), videoElement && document.pictureInPictureEnabled && (_jsx(GenericMenuButtonItem, Object.assign({ onClick: togglePictureInPicture }, { children: t('{{ direction }} picture-in-picture', {
128
123
  direction: pictureInPictureElement === videoElement
@@ -1 +1 @@
1
- {"version":3,"file":"CallParticipantListingItem.js","sourceRoot":"","sources":["../../../../src/components/CallParticipantsList/CallParticipantListingItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CallParticipantListingItem.js","sourceRoot":"","sources":["../../../../src/components/CallParticipantsList/CallParticipantListingItem.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,14 @@
1
1
  import { ComponentPropsWithoutRef } from 'react';
2
- import { StreamVideoParticipant } from '@stream-io/video-client';
2
+ import { AudioTrackType, StreamVideoParticipant } from '@stream-io/video-client';
3
3
  export type AudioProps = ComponentPropsWithoutRef<'audio'> & {
4
+ /**
5
+ * The participant whose audio stream we want to play.
6
+ */
4
7
  participant: StreamVideoParticipant;
8
+ /**
9
+ * The type of audio stream to play for the given participant.
10
+ * The default value is `audioTrack`.
11
+ */
12
+ trackType?: AudioTrackType;
5
13
  };
6
- export declare const Audio: ({ participant, ...rest }: AudioProps) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const Audio: ({ participant, trackType, ...rest }: AudioProps) => import("react/jsx-runtime").JSX.Element;
@@ -13,18 +13,18 @@ import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import { useEffect, useState } from 'react';
14
14
  import { useCall } from '@stream-io/video-react-bindings';
15
15
  export const Audio = (_a) => {
16
- var { participant } = _a, rest = __rest(_a, ["participant"]);
16
+ var { participant, trackType = 'audioTrack' } = _a, rest = __rest(_a, ["participant", "trackType"]);
17
17
  const call = useCall();
18
18
  const [audioElement, setAudioElement] = useState(null);
19
19
  const { userId, sessionId } = participant;
20
20
  useEffect(() => {
21
21
  if (!call || !audioElement)
22
22
  return;
23
- const cleanup = call.bindAudioElement(audioElement, sessionId);
23
+ const cleanup = call.bindAudioElement(audioElement, sessionId, trackType);
24
24
  return () => {
25
25
  cleanup === null || cleanup === void 0 ? void 0 : cleanup();
26
26
  };
27
- }, [call, sessionId, audioElement]);
28
- return (_jsx("audio", Object.assign({ autoPlay: true }, rest, { ref: setAudioElement, "data-user-id": userId, "data-session-id": sessionId })));
27
+ }, [call, sessionId, audioElement, trackType]);
28
+ return (_jsx("audio", Object.assign({ autoPlay: true }, rest, { ref: setAudioElement, "data-user-id": userId, "data-session-id": sessionId, "data-track-type": trackType })));
29
29
  };
30
30
  //# sourceMappingURL=Audio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Audio.js","sourceRoot":"","sources":["../../../../../src/core/components/Audio/Audio.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAA4B,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAM1D,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAoC,EAAE,EAAE;QAAxC,EAAE,WAAW,OAAuB,EAAlB,IAAI,cAAtB,eAAwB,CAAF;IAC1C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC9C,IAAI,CACL,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/D,OAAO,GAAG,EAAE;YACV,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAC;QACd,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAEpC,OAAO,CACL,8BACE,QAAQ,UACJ,IAAI,IACR,GAAG,EAAE,eAAe,kBACN,MAAM,qBACH,SAAS,IAC1B,CACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Audio.js","sourceRoot":"","sources":["../../../../../src/core/components/Audio/Audio.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAA4B,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKtE,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAe1D,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAIT,EAAE,EAAE;QAJK,EACpB,WAAW,EACX,SAAS,GAAG,YAAY,OAEb,EADR,IAAI,cAHa,4BAIrB,CADQ;IAEP,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC9C,IAAI,CACL,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1E,OAAO,GAAG,EAAE;YACV,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAC;QACd,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/C,OAAO,CACL,8BACE,QAAQ,UACJ,IAAI,IACR,GAAG,EAAE,eAAe,kBACN,MAAM,qBACH,SAAS,qBACT,SAAS,IAC1B,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -4,8 +4,18 @@ import { SfuModels } from '@stream-io/video-client';
4
4
  import { Audio } from './Audio';
5
5
  export const ParticipantsAudio = (props) => {
6
6
  const { participants, audioProps } = props;
7
- return (_jsx(_Fragment, { children: participants.map((participant) => !participant.isLocalParticipant &&
8
- participant.publishedTracks.includes(SfuModels.TrackType.AUDIO) &&
9
- participant.audioStream && (_createElement(Audio, Object.assign({}, audioProps, { participant: participant, key: participant.sessionId })))) }));
7
+ return (_jsx(_Fragment, { children: participants.map((participant) => {
8
+ if (participant.isLocalParticipant)
9
+ return null;
10
+ const hasAudio = participant.publishedTracks.includes(SfuModels.TrackType.AUDIO);
11
+ const hasScreenShareAudio = participant.publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE_AUDIO);
12
+ if (hasAudio && participant.audioStream) {
13
+ return (_createElement(Audio, Object.assign({}, audioProps, { trackType: "audioTrack", participant: participant, key: participant.sessionId })));
14
+ }
15
+ if (hasScreenShareAudio && participant.screenShareAudioStream) {
16
+ return (_createElement(Audio, Object.assign({}, audioProps, { trackType: "screenShareAudioTrack", participant: participant, key: participant.sessionId })));
17
+ }
18
+ return null;
19
+ }) }));
10
20
  };
11
21
  //# sourceMappingURL=ParticipantsAudio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParticipantsAudio.js","sourceRoot":"","sources":["../../../../../src/core/components/Audio/ParticipantsAudio.tsx"],"names":[],"mappings":";;AACA,OAAO,EAAE,SAAS,EAA0B,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAchC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAE,EAAE;IACjE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3C,OAAO,CACL,4BACG,YAAY,CAAC,GAAG,CACf,CAAC,WAAW,EAAE,EAAE,CACd,CAAC,WAAW,CAAC,kBAAkB;YAC/B,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/D,WAAW,CAAC,WAAW,IAAI,CACzB,eAAC,KAAK,oBACA,UAAU,IACd,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,WAAW,CAAC,SAAS,IAC1B,CACH,CACJ,GACA,CACJ,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ParticipantsAudio.js","sourceRoot":"","sources":["../../../../../src/core/components/Audio/ParticipantsAudio.tsx"],"names":[],"mappings":";;AACA,OAAO,EAAE,SAAS,EAA0B,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAchC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAE,EAAE;IACjE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3C,OAAO,CACL,4BACG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YAChC,IAAI,WAAW,CAAC,kBAAkB;gBAAE,OAAO,IAAI,CAAC;YAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,QAAQ,CACnD,SAAS,CAAC,SAAS,CAAC,KAAK,CAC1B,CAAC;YACF,MAAM,mBAAmB,GAAG,WAAW,CAAC,eAAe,CAAC,QAAQ,CAC9D,SAAS,CAAC,SAAS,CAAC,kBAAkB,CACvC,CAAC;YACF,IAAI,QAAQ,IAAI,WAAW,CAAC,WAAW,EAAE;gBACvC,OAAO,CACL,eAAC,KAAK,oBACA,UAAU,IACd,SAAS,EAAC,YAAY,EACtB,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,WAAW,CAAC,SAAS,IAC1B,CACH,CAAC;aACH;YACD,IAAI,mBAAmB,IAAI,WAAW,CAAC,sBAAsB,EAAE;gBAC7D,OAAO,CACL,eAAC,KAAK,oBACA,UAAU,IACd,SAAS,EAAC,uBAAuB,EACjC,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,WAAW,CAAC,SAAS,IAC1B,CACH,CAAC;aACH;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { createContext, forwardRef, useContext, useMemo, useState, } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { SfuModels, } from '@stream-io/video-client';
@@ -13,6 +13,7 @@ export const ParticipantView = forwardRef(({ participant, trackType = 'videoTrac
13
13
  const { isLocalParticipant, isSpeaking, isDominantSpeaker, publishedTracks, sessionId, } = participant;
14
14
  const hasAudio = publishedTracks.includes(SfuModels.TrackType.AUDIO);
15
15
  const hasVideo = publishedTracks.includes(SfuModels.TrackType.VIDEO);
16
+ const hasScreenShareAudio = publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE_AUDIO);
16
17
  const [trackedElement, setTrackedElement] = useState(null);
17
18
  const [contextVideoElement, setContextVideoElement] = useState(null);
18
19
  const [contextVideoPlaceholderElement, setContextVideoPlaceholderElement] = useState(null);
@@ -48,6 +49,6 @@ export const ParticipantView = forwardRef(({ participant, trackType = 'videoTrac
48
49
  return (_jsx("div", Object.assign({ "data-testid": "participant-view", ref: (element) => {
49
50
  applyElementToRef(ref, element);
50
51
  setTrackedElement(element);
51
- }, className: clsx('str-video__participant-view', isDominantSpeaker && 'str-video__participant-view--dominant-speaker', isSpeaking && 'str-video__participant-view--speaking', !hasVideo && 'str-video__participant-view--no-video', !hasAudio && 'str-video__participant-view--no-audio', className) }, { children: _jsxs(ParticipantViewContext.Provider, Object.assign({ value: participantViewContextValue }, { children: [!isLocalParticipant && !muteAudio && hasAudio && (_jsx(Audio, { participant: participant })), _jsx(Video, { VideoPlaceholder: VideoPlaceholder, participant: participant, trackType: trackType, refs: videoRefs, autoPlay: true }), isComponentType(ParticipantViewUI) ? (_jsx(ParticipantViewUI, {})) : (ParticipantViewUI)] })) })));
52
+ }, className: clsx('str-video__participant-view', isDominantSpeaker && 'str-video__participant-view--dominant-speaker', isSpeaking && 'str-video__participant-view--speaking', !hasVideo && 'str-video__participant-view--no-video', !hasAudio && 'str-video__participant-view--no-audio', className) }, { children: _jsxs(ParticipantViewContext.Provider, Object.assign({ value: participantViewContextValue }, { children: [!isLocalParticipant && !muteAudio && (_jsxs(_Fragment, { children: [hasAudio && (_jsx(Audio, { participant: participant, trackType: "audioTrack" })), hasScreenShareAudio && (_jsx(Audio, { participant: participant, trackType: "screenShareAudioTrack" }))] })), _jsx(Video, { VideoPlaceholder: VideoPlaceholder, participant: participant, trackType: trackType, refs: videoRefs, autoPlay: true }), isComponentType(ParticipantViewUI) ? (_jsx(ParticipantViewUI, {})) : (ParticipantViewUI)] })) })));
52
53
  });
53
54
  //# sourceMappingURL=ParticipantView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParticipantView.js","sourceRoot":"","sources":["../../../../../src/core/components/ParticipantView/ParticipantView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParticipantView.js","sourceRoot":"","sources":["../../../../../src/core/components/ParticipantView/ParticipantView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,aAAa,EACb,UAAU,EAEV,UAAU,EACV,OAAO,EACP,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,SAAS,GAIV,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,KAAK,EAAc,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUxE,MAAM,sBAAsB,GAAG,aAAa,CAE1C,SAAS,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAC5C,UAAU,CAAC,sBAAsB,CAAgC,CAAC;AAuCpE,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CACvC,CACE,EACE,WAAW,EACX,SAAS,GAAG,YAAY,EACxB,SAAS,EACT,IAAI,EAAE,EAAE,eAAe,EAAE,0BAA0B,EAAE,GAAG,EAAE,EAC1D,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAAG,wBAAyC,GAC9D,EACD,GAAG,EACH,EAAE;IACF,MAAM,EACJ,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,SAAS,GACV,GAAG,WAAW,CAAC;IAEhB,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,mBAAmB,GAAG,eAAe,CAAC,QAAQ,CAClD,SAAS,CAAC,SAAS,CAAC,kBAAkB,CACvC,CAAC;IAEF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,IAAI,CACL,CAAC;IAEF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GACjD,QAAQ,CAA0B,IAAI,CAAC,CAAC;IAE1C,MAAM,CAAC,8BAA8B,EAAE,iCAAiC,CAAC,GACvE,QAAQ,CAAwB,IAAI,CAAC,CAAC;IAExC,iEAAiE;IACjE,yBAAyB,CAAC;QACxB,SAAS;QACT,cAAc;QACd,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,2BAA2B,GAAG,OAAO,CACzC,GAAG,EAAE,CAAC,CAAC;QACL,WAAW;QACX,sBAAsB,EAAE,cAAc;QACtC,YAAY,EAAE,mBAAmB;QACjC,uBAAuB,EAAE,8BAA8B;QACvD,SAAS;KACV,CAAC,EACF;QACE,mBAAmB;QACnB,8BAA8B;QAC9B,WAAW;QACX,cAAc;QACd,SAAS;KACV,CACF,CAAC;IAEF,MAAM,SAAS,GAAuB,OAAO,CAC3C,GAAG,EAAE,CAAC,CAAC;QACL,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YAC3B,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,OAAO,CAAC,CAAC;YAC3B,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,0BAA0B,EAAE,CAAC,OAAO,EAAE,EAAE;YACtC,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CAAG,OAAO,CAAC,CAAC;YACtC,iCAAiC,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC,EACF,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAC9C,CAAC;IAEF,OAAO,CACL,2CACc,kBAAkB,EAC9B,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;YACf,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,EACD,SAAS,EAAE,IAAI,CACb,6BAA6B,EAC7B,iBAAiB,IAAI,+CAA+C,EACpE,UAAU,IAAI,uCAAuC,EACrD,CAAC,QAAQ,IAAI,uCAAuC,EACpD,CAAC,QAAQ,IAAI,uCAAuC,EACpD,SAAS,CACV,gBAED,MAAC,sBAAsB,CAAC,QAAQ,kBAAC,KAAK,EAAE,2BAA2B,iBAEhE,CAAC,kBAAkB,IAAI,CAAC,SAAS,IAAI,CACpC,8BACG,QAAQ,IAAI,CACX,KAAC,KAAK,IAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAC,YAAY,GAAG,CAC3D,EACA,mBAAmB,IAAI,CACtB,KAAC,KAAK,IACJ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAC,uBAAuB,GACjC,CACH,IACA,CACJ,EACD,KAAC,KAAK,IACJ,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,EACf,QAAQ,SACR,EACD,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CACpC,KAAC,iBAAiB,KAAG,CACtB,CAAC,CAAC,CAAC,CACF,iBAAiB,CAClB,KAC+B,IAC9B,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -50,6 +50,7 @@
50
50
  "Turn off video": "Turn off video",
51
51
  "Turn off screen share": "Turn off screen share",
52
52
  "Mute audio": "Mute audio",
53
+ "Mute screen share audio": "Mute screen share audio",
53
54
  "Allow audio": "Allow audio",
54
55
  "Allow video": "Allow video",
55
56
  "Allow screen sharing": "Allow screen sharing",
@@ -51,6 +51,7 @@ export declare const translations: {
51
51
  "Turn off video": string;
52
52
  "Turn off screen share": string;
53
53
  "Mute audio": string;
54
+ "Mute screen share audio": string;
54
55
  "Allow audio": string;
55
56
  "Allow video": string;
56
57
  "Allow screen sharing": string;
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "0.3.37";
1
+ export declare const version = "0.3.38";
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '0.3.37';
1
+ export const version = '0.3.38';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/video-react-sdk",
3
- "version": "0.3.37",
3
+ "version": "0.3.38",
4
4
  "packageManager": "yarn@3.2.4",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -33,8 +33,8 @@
33
33
  "@nivo/core": "^0.80.0",
34
34
  "@nivo/line": "^0.80.0",
35
35
  "@stream-io/i18n": "^0.1.2",
36
- "@stream-io/video-client": "^0.3.29",
37
- "@stream-io/video-react-bindings": "^0.2.30",
36
+ "@stream-io/video-client": "^0.3.30",
37
+ "@stream-io/video-react-bindings": "^0.2.31",
38
38
  "clsx": "^1.2.1",
39
39
  "prop-types": "^15.8.1",
40
40
  "rxjs": "~7.8.1"
@@ -142,7 +142,7 @@ export const ParticipantActionsContextMenu = ({
142
142
  const [pictureInPictureElement, setPictureInPictureElement] = useState(
143
143
  document.pictureInPictureElement,
144
144
  );
145
- const activeCall = useCall();
145
+ const call = useCall();
146
146
  const { t } = useI18n();
147
147
 
148
148
  const { pin, publishedTracks, sessionId, userId } = participant;
@@ -152,29 +152,26 @@ export const ParticipantActionsContextMenu = ({
152
152
  const hasScreenShare = publishedTracks.includes(
153
153
  SfuModels.TrackType.SCREEN_SHARE,
154
154
  );
155
+ const hasScreenShareAudio = publishedTracks.includes(
156
+ SfuModels.TrackType.SCREEN_SHARE_AUDIO,
157
+ );
155
158
 
156
- const blockUser = () => {
157
- activeCall?.blockUser(userId);
158
- };
159
- const muteAudio = () => {
160
- activeCall?.muteUser(userId, 'audio');
161
- };
162
- const muteVideo = () => {
163
- activeCall?.muteUser(userId, 'video');
164
- };
165
- const muteScreenShare = () => {
166
- activeCall?.muteUser(userId, 'screenshare');
167
- };
159
+ const blockUser = () => call?.blockUser(userId);
160
+ const muteAudio = () => call?.muteUser(userId, 'audio');
161
+ const muteVideo = () => call?.muteUser(userId, 'video');
162
+ const muteScreenShare = () => call?.muteUser(userId, 'screenshare');
163
+ const muteScreenShareAudio = () =>
164
+ call?.muteUser(userId, 'screenshare_audio');
168
165
 
169
166
  const grantPermission = (permission: string) => () => {
170
- activeCall?.updateUserPermissions({
167
+ call?.updateUserPermissions({
171
168
  user_id: userId,
172
169
  grant_permissions: [permission],
173
170
  });
174
171
  };
175
172
 
176
173
  const revokePermission = (permission: string) => () => {
177
- activeCall?.updateUserPermissions({
174
+ call?.updateUserPermissions({
178
175
  user_id: userId,
179
176
  revoke_permissions: [permission],
180
177
  });
@@ -182,14 +179,14 @@ export const ParticipantActionsContextMenu = ({
182
179
 
183
180
  const toggleParticipantPinnedAt = () => {
184
181
  if (pin) {
185
- activeCall?.unpin(sessionId);
182
+ call?.unpin(sessionId);
186
183
  } else {
187
- activeCall?.pin(sessionId);
184
+ call?.pin(sessionId);
188
185
  }
189
186
  };
190
187
 
191
188
  const pinForEveryone = () => {
192
- activeCall
189
+ call
193
190
  ?.pinForEveryone({
194
191
  user_id: userId,
195
192
  session_id: sessionId,
@@ -200,7 +197,7 @@ export const ParticipantActionsContextMenu = ({
200
197
  };
201
198
 
202
199
  const unpinForEveryone = () => {
203
- activeCall
200
+ call
204
201
  ?.unpinForEveryone({
205
202
  user_id: userId,
206
203
  session_id: sessionId,
@@ -253,10 +250,11 @@ export const ParticipantActionsContextMenu = ({
253
250
  }, [videoElement]);
254
251
 
255
252
  const togglePictureInPicture = () => {
256
- if (videoElement && pictureInPictureElement !== videoElement)
253
+ if (videoElement && pictureInPictureElement !== videoElement) {
257
254
  return videoElement
258
255
  .requestPictureInPicture()
259
256
  .catch(console.error) as Promise<void>;
257
+ }
260
258
 
261
259
  document.exitPictureInPicture().catch(console.error);
262
260
  };
@@ -308,6 +306,13 @@ export const ParticipantActionsContextMenu = ({
308
306
  <Icon icon="no-audio" />
309
307
  {t('Mute audio')}
310
308
  </GenericMenuButtonItem>
309
+ <GenericMenuButtonItem
310
+ disabled={!hasScreenShareAudio}
311
+ onClick={muteScreenShareAudio}
312
+ >
313
+ <Icon icon="no-audio" />
314
+ {t('Mute screen share audio')}
315
+ </GenericMenuButtonItem>
311
316
  </Restricted>
312
317
  {participantViewElement && (
313
318
  <GenericMenuButtonItem onClick={toggleFullscreenMode}>
@@ -1,12 +1,28 @@
1
1
  import { ComponentPropsWithoutRef, useEffect, useState } from 'react';
2
- import { StreamVideoParticipant } from '@stream-io/video-client';
2
+ import {
3
+ AudioTrackType,
4
+ StreamVideoParticipant,
5
+ } from '@stream-io/video-client';
3
6
  import { useCall } from '@stream-io/video-react-bindings';
4
7
 
5
8
  export type AudioProps = ComponentPropsWithoutRef<'audio'> & {
9
+ /**
10
+ * The participant whose audio stream we want to play.
11
+ */
6
12
  participant: StreamVideoParticipant;
13
+
14
+ /**
15
+ * The type of audio stream to play for the given participant.
16
+ * The default value is `audioTrack`.
17
+ */
18
+ trackType?: AudioTrackType;
7
19
  };
8
20
 
9
- export const Audio = ({ participant, ...rest }: AudioProps) => {
21
+ export const Audio = ({
22
+ participant,
23
+ trackType = 'audioTrack',
24
+ ...rest
25
+ }: AudioProps) => {
10
26
  const call = useCall();
11
27
  const [audioElement, setAudioElement] = useState<HTMLAudioElement | null>(
12
28
  null,
@@ -15,13 +31,11 @@ export const Audio = ({ participant, ...rest }: AudioProps) => {
15
31
 
16
32
  useEffect(() => {
17
33
  if (!call || !audioElement) return;
18
-
19
- const cleanup = call.bindAudioElement(audioElement, sessionId);
20
-
34
+ const cleanup = call.bindAudioElement(audioElement, sessionId, trackType);
21
35
  return () => {
22
36
  cleanup?.();
23
37
  };
24
- }, [call, sessionId, audioElement]);
38
+ }, [call, sessionId, audioElement, trackType]);
25
39
 
26
40
  return (
27
41
  <audio
@@ -30,6 +44,7 @@ export const Audio = ({ participant, ...rest }: AudioProps) => {
30
44
  ref={setAudioElement}
31
45
  data-user-id={userId}
32
46
  data-session-id={sessionId}
47
+ data-track-type={trackType}
33
48
  />
34
49
  );
35
50
  };
@@ -18,18 +18,36 @@ export const ParticipantsAudio = (props: ParticipantsAudioProps) => {
18
18
  const { participants, audioProps } = props;
19
19
  return (
20
20
  <>
21
- {participants.map(
22
- (participant) =>
23
- !participant.isLocalParticipant &&
24
- participant.publishedTracks.includes(SfuModels.TrackType.AUDIO) &&
25
- participant.audioStream && (
21
+ {participants.map((participant) => {
22
+ if (participant.isLocalParticipant) return null;
23
+ const hasAudio = participant.publishedTracks.includes(
24
+ SfuModels.TrackType.AUDIO,
25
+ );
26
+ const hasScreenShareAudio = participant.publishedTracks.includes(
27
+ SfuModels.TrackType.SCREEN_SHARE_AUDIO,
28
+ );
29
+ if (hasAudio && participant.audioStream) {
30
+ return (
26
31
  <Audio
27
32
  {...audioProps}
33
+ trackType="audioTrack"
28
34
  participant={participant}
29
35
  key={participant.sessionId}
30
36
  />
31
- ),
32
- )}
37
+ );
38
+ }
39
+ if (hasScreenShareAudio && participant.screenShareAudioStream) {
40
+ return (
41
+ <Audio
42
+ {...audioProps}
43
+ trackType="screenShareAudioTrack"
44
+ participant={participant}
45
+ key={participant.sessionId}
46
+ />
47
+ );
48
+ }
49
+ return null;
50
+ })}
33
51
  </>
34
52
  );
35
53
  };
@@ -96,6 +96,9 @@ export const ParticipantView = forwardRef<HTMLDivElement, ParticipantViewProps>(
96
96
 
97
97
  const hasAudio = publishedTracks.includes(SfuModels.TrackType.AUDIO);
98
98
  const hasVideo = publishedTracks.includes(SfuModels.TrackType.VIDEO);
99
+ const hasScreenShareAudio = publishedTracks.includes(
100
+ SfuModels.TrackType.SCREEN_SHARE_AUDIO,
101
+ );
99
102
 
100
103
  const [trackedElement, setTrackedElement] = useState<HTMLDivElement | null>(
101
104
  null,
@@ -163,8 +166,18 @@ export const ParticipantView = forwardRef<HTMLDivElement, ParticipantViewProps>(
163
166
  >
164
167
  <ParticipantViewContext.Provider value={participantViewContextValue}>
165
168
  {/* mute the local participant, as we don't want to hear ourselves */}
166
- {!isLocalParticipant && !muteAudio && hasAudio && (
167
- <Audio participant={participant} />
169
+ {!isLocalParticipant && !muteAudio && (
170
+ <>
171
+ {hasAudio && (
172
+ <Audio participant={participant} trackType="audioTrack" />
173
+ )}
174
+ {hasScreenShareAudio && (
175
+ <Audio
176
+ participant={participant}
177
+ trackType="screenShareAudioTrack"
178
+ />
179
+ )}
180
+ </>
168
181
  )}
169
182
  <Video
170
183
  VideoPlaceholder={VideoPlaceholder}
@@ -54,6 +54,7 @@
54
54
  "Turn off video": "Turn off video",
55
55
  "Turn off screen share": "Turn off screen share",
56
56
  "Mute audio": "Mute audio",
57
+ "Mute screen share audio": "Mute screen share audio",
57
58
  "Allow audio": "Allow audio",
58
59
  "Allow video": "Allow video",
59
60
  "Allow screen sharing": "Allow screen sharing",