@stream-io/video-react-sdk 0.0.1-alpha.47 → 0.0.1-alpha.49

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.
Files changed (33) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/src/components/Notification/SpeakingWhileMutedNotification.js +4 -2
  3. package/dist/src/components/Notification/SpeakingWhileMutedNotification.js.map +1 -1
  4. package/dist/src/components/{StreamMeeting/StreamMeeting.d.ts → StreamCall/StreamCall.d.ts} +3 -3
  5. package/dist/src/components/{StreamMeeting/StreamMeeting.js → StreamCall/StreamCall.js} +2 -2
  6. package/dist/src/components/StreamCall/StreamCall.js.map +1 -0
  7. package/dist/src/components/StreamCall/index.d.ts +1 -0
  8. package/dist/src/components/StreamCall/index.js +1 -0
  9. package/dist/src/components/StreamCall/index.js.map +1 -1
  10. package/dist/src/components/Video/VideoPreview.js +1 -1
  11. package/dist/src/components/Video/VideoPreview.js.map +1 -1
  12. package/dist/src/components/index.d.ts +0 -1
  13. package/dist/src/components/index.js +0 -1
  14. package/dist/src/components/index.js.map +1 -1
  15. package/dist/src/core/contexts/MediaDevicesContext.d.ts +3 -2
  16. package/dist/src/core/hooks/useAudioPublisher.js +9 -3
  17. package/dist/src/core/hooks/useAudioPublisher.js.map +1 -1
  18. package/dist/src/core/hooks/useVideoPublisher.js +35 -6
  19. package/dist/src/core/hooks/useVideoPublisher.js.map +1 -1
  20. package/package.json +5 -5
  21. package/src/components/Notification/SpeakingWhileMutedNotification.tsx +9 -8
  22. package/src/components/{StreamMeeting/StreamMeeting.tsx → StreamCall/StreamCall.tsx} +4 -4
  23. package/src/components/StreamCall/index.ts +1 -0
  24. package/src/components/Video/VideoPreview.tsx +1 -1
  25. package/src/components/index.ts +0 -1
  26. package/src/core/contexts/MediaDevicesContext.tsx +2 -2
  27. package/src/core/hooks/useAudioPublisher.ts +9 -3
  28. package/src/core/hooks/useVideoPublisher.ts +36 -4
  29. package/dist/src/components/StreamMeeting/StreamMeeting.js.map +0 -1
  30. package/dist/src/components/StreamMeeting/index.d.ts +0 -1
  31. package/dist/src/components/StreamMeeting/index.js +0 -2
  32. package/dist/src/components/StreamMeeting/index.js.map +0 -1
  33. package/src/components/StreamMeeting/index.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.0.1-alpha.49](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-0.0.1-alpha.48...@stream-io/video-react-sdk-0.0.1-alpha.49) (2023-05-17)
6
+
7
+
8
+
9
+ ## [0.0.1-alpha.48](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-0.0.1-alpha.47...@stream-io/video-react-sdk-0.0.1-alpha.48) (2023-05-17)
10
+
11
+
12
+ ### Features
13
+
14
+ * Support for server-side driven stream resolution ([#516](https://github.com/GetStream/stream-video-js/issues/516)) ([cae1169](https://github.com/GetStream/stream-video-js/commit/cae11695fe4aa11bd5e168b00ffd6ea35e2524a2))
15
+
16
+
17
+
5
18
  ## [0.0.1-alpha.47](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-0.0.1-alpha.46...@stream-io/video-react-sdk-0.0.1-alpha.47) (2023-05-17)
6
19
 
7
20
 
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
3
  import { createSoundDetector, SfuModels } from '@stream-io/video-client';
4
4
  import { useLocalParticipant } from '@stream-io/video-react-bindings';
5
- import { useMediaDevices } from '../../core/contexts';
5
+ import { useMediaDevices } from '../../core';
6
6
  import { Notification } from './Notification';
7
7
  export const SpeakingWhileMutedNotification = ({ children }) => {
8
8
  const localParticipant = useLocalParticipant();
@@ -14,7 +14,9 @@ export const SpeakingWhileMutedNotification = ({ children }) => {
14
14
  // do nothing when not muted
15
15
  if (!isAudioMute)
16
16
  return;
17
- const disposeSoundDetector = getAudioStream(audioDeviceId).then((audioStream) => createSoundDetector(audioStream, (isSpeechDetected) => {
17
+ const disposeSoundDetector = getAudioStream({
18
+ deviceId: audioDeviceId,
19
+ }).then((audioStream) => createSoundDetector(audioStream, (isSpeechDetected) => {
18
20
  setIsSpeakingWhileMuted((isNotified) => isNotified ? isNotified : isSpeechDetected);
19
21
  }));
20
22
  disposeSoundDetector.catch((err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"SpeakingWhileMutedNotification.js","sourceRoot":"","sources":["../../../../src/components/Notification/SpeakingWhileMutedNotification.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAAE,QAAQ,EAAgB,EAAE,EAAE;IAC3E,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE,CAAC;IAE7C,MAAM,WAAW,GAAG,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,eAAe,CAAC,QAAQ,CAC7D,SAAS,CAAC,SAAS,CAAC,KAAK,CAC1B,CAAA,CAAC;IACF,MAAM,aAAa,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,aAAa,CAAC;IACtD,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxE,SAAS,CAAC,GAAG,EAAE;QACb,4BAA4B;QAC5B,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,MAAM,oBAAoB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC,IAAI,CAC7D,CAAC,WAAW,EAAE,EAAE,CACd,mBAAmB,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,EAAE;YACpD,uBAAuB,CAAC,CAAC,UAAU,EAAE,EAAE,CACrC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAC3C,CAAC;QACJ,CAAC,CAAC,CACL,CAAC;QACF,oBAAoB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,oBAAoB;iBACjB,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;iBAC5B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACL,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,oBAAoB;YAAE,OAAO;QAClC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC3B,OAAO,CACL,KAAC,YAAY,kBACX,OAAO,EAAC,iCAAiC,EACzC,SAAS,EAAE,oBAAoB,gBAE9B,QAAQ,IACI,CAChB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"SpeakingWhileMutedNotification.js","sourceRoot":"","sources":["../../../../src/components/Notification/SpeakingWhileMutedNotification.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAAE,QAAQ,EAAgB,EAAE,EAAE;IAC3E,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE,CAAC;IAE7C,MAAM,WAAW,GAAG,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,eAAe,CAAC,QAAQ,CAC7D,SAAS,CAAC,SAAS,CAAC,KAAK,CAC1B,CAAA,CAAC;IACF,MAAM,aAAa,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,aAAa,CAAC;IACtD,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxE,SAAS,CAAC,GAAG,EAAE;QACb,4BAA4B;QAC5B,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,MAAM,oBAAoB,GAAG,cAAc,CAAC;YAC1C,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CACtB,mBAAmB,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,EAAE;YACpD,uBAAuB,CAAC,CAAC,UAAU,EAAE,EAAE,CACrC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAC3C,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QACF,oBAAoB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,oBAAoB;iBACjB,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;iBAC5B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACL,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,oBAAoB;YAAE,OAAO;QAClC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC3B,OAAO,CACL,KAAC,YAAY,kBACX,OAAO,EAAC,iCAAiC,EACzC,SAAS,EAAE,oBAAoB,gBAE9B,QAAQ,IACI,CAChB,CAAC;AACJ,CAAC,CAAC"}
@@ -11,8 +11,8 @@ type InitWithCallInstance = {
11
11
  callId?: never;
12
12
  callType?: never;
13
13
  };
14
- type InitStreamMeeting = InitWithCallCID | InitWithCallInstance;
15
- export type StreamMeetingProps = InitStreamMeeting & {
14
+ type InitStreamCall = InitWithCallCID | InitWithCallInstance;
15
+ export type StreamCallProps = InitStreamCall & {
16
16
  /**
17
17
  * If true, the call will be joined automatically.
18
18
  * Set it to true if you want to join the call immediately.
@@ -30,5 +30,5 @@ export type StreamMeetingProps = InitStreamMeeting & {
30
30
  */
31
31
  mediaDevicesProviderProps?: MediaDevicesProviderProps;
32
32
  };
33
- export declare const StreamMeeting: ({ children, callId, callType, call, autoJoin, data, mediaDevicesProviderProps, }: PropsWithChildren<StreamMeetingProps>) => JSX.Element;
33
+ export declare const StreamCall: ({ children, callId, callType, call, autoJoin, data, mediaDevicesProviderProps, }: PropsWithChildren<StreamCallProps>) => JSX.Element;
34
34
  export {};
@@ -3,7 +3,7 @@ import { useEffect, useState } from 'react';
3
3
  import { CallingState } from '@stream-io/video-client';
4
4
  import { StreamCallProvider, useStreamVideoClient, } from '@stream-io/video-react-bindings';
5
5
  import { MediaDevicesProvider } from '../../core';
6
- export const StreamMeeting = ({ children, callId, callType, call, autoJoin = false, data, mediaDevicesProviderProps, }) => {
6
+ export const StreamCall = ({ children, callId, callType, call, autoJoin = false, data, mediaDevicesProviderProps, }) => {
7
7
  const client = useStreamVideoClient();
8
8
  const [activeCall, setActiveCall] = useState(() => {
9
9
  if (call)
@@ -29,4 +29,4 @@ export const StreamMeeting = ({ children, callId, callType, call, autoJoin = fal
29
29
  }, [activeCall, autoJoin, data]);
30
30
  return (_jsx(StreamCallProvider, Object.assign({ call: activeCall }, { children: _jsx(MediaDevicesProvider, Object.assign({}, mediaDevicesProviderProps, { children: children })) })));
31
31
  };
32
- //# sourceMappingURL=StreamMeeting.js.map
32
+ //# sourceMappingURL=StreamCall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamCall.js","sourceRoot":"","sources":["../../../../src/components/StreamCall/StreamCall.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAQ,YAAY,EAAgB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAA6B,MAAM,YAAY,CAAC;AAqC7E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,IAAI,EACJ,yBAAyB,GACU,EAAE,EAAE;IACvC,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAmB,GAAG,EAAE;QAClE,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,IAAI,MAAM,IAAI,QAAQ,IAAI,CAAC,UAAU,EAAE;YACrC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9C,aAAa,CAAC,OAAO,CAAC,CAAC;SACxB;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,YAAY,MAAK,YAAY,CAAC,IAAI,EAAE;YACpE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjC,OAAO,CACL,KAAC,kBAAkB,kBAAC,IAAI,EAAE,UAAU,gBAClC,KAAC,oBAAoB,oBAAK,yBAAyB,cAChD,QAAQ,IACY,IACJ,CACtB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './Stage';
2
2
  export * from './CallParticipantsView';
3
3
  export * from './CallParticipantsScreenView';
4
+ export * from './StreamCall';
@@ -1,4 +1,5 @@
1
1
  export * from './Stage';
2
2
  export * from './CallParticipantsView';
3
3
  export * from './CallParticipantsScreenView';
4
+ export * from './StreamCall';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/StreamCall/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/StreamCall/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,cAAc,CAAC"}
@@ -25,7 +25,7 @@ export const VideoPreview = ({ mirror = true, DisabledVideoPreview = DefaultDisa
25
25
  useEffect(() => {
26
26
  if (!initialVideoState.enabled)
27
27
  return;
28
- getVideoStream(selectedVideoDeviceId)
28
+ getVideoStream({ deviceId: selectedVideoDeviceId })
29
29
  .then((s) => {
30
30
  setStream((previousStream) => {
31
31
  if (previousStream) {
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPreview.js","sourceRoot":"","sources":["../../../../src/components/Video/VideoPreview.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VideoPreview.js","sourceRoot":"","sources":["../../../../src/components/Video/VideoPreview.tsx"],"names":[],"mappings":"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"}
@@ -10,7 +10,6 @@ export * from './Notification';
10
10
  export * from './PendingCallPanel';
11
11
  export * from './Permissions';
12
12
  export * from './StreamCall';
13
- export * from './StreamMeeting';
14
13
  export * from './StreamTheme';
15
14
  export * from './Search';
16
15
  export * from './Tooltip';
@@ -10,7 +10,6 @@ export * from './Notification';
10
10
  export * from './PendingCallPanel';
11
11
  export * from './Permissions';
12
12
  export * from './StreamCall';
13
- export * from './StreamMeeting';
14
13
  export * from './StreamTheme';
15
14
  export * from './Search';
16
15
  export * from './Tooltip';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { PropsWithChildren } from 'react';
2
+ import { getAudioStream, getVideoStream } from '@stream-io/video-client';
2
3
  type EnabledStateType = 'starting' | 'playing';
3
4
  type DisabledStateType = 'uninitialized' | 'stopped';
4
5
  type EnabledDeviceState<T extends EnabledStateType> = {
@@ -32,8 +33,8 @@ export declare const DEVICE_STATE: {
32
33
  */
33
34
  export type MediaDevicesContextAPI = {
34
35
  disposeOfMediaStream: (stream: MediaStream) => void;
35
- getAudioStream: (deviceId?: string) => Promise<MediaStream>;
36
- getVideoStream: (deviceId?: string) => Promise<MediaStream>;
36
+ getAudioStream: typeof getAudioStream;
37
+ getVideoStream: typeof getVideoStream;
37
38
  isAudioOutputChangeSupported: boolean;
38
39
  initialAudioEnabled: boolean;
39
40
  initialVideoState: DeviceState;
@@ -29,7 +29,9 @@ export const useAudioPublisher = ({ initialAudioMuted, audioDeviceId, }) => {
29
29
  throw new Error(`No permission to publish audio`);
30
30
  }
31
31
  try {
32
- const audioStream = yield getAudioStream(audioDeviceId);
32
+ const audioStream = yield getAudioStream({
33
+ deviceId: audioDeviceId,
34
+ });
33
35
  yield call.publishAudioStream(audioStream);
34
36
  }
35
37
  catch (e) {
@@ -69,12 +71,16 @@ export const useAudioPublisher = ({ initialAudioMuted, audioDeviceId, }) => {
69
71
  // We need to stop the original track first in order
70
72
  // we can retrieve the new default device stream
71
73
  track.stop();
72
- const audioStream = yield getAudioStream('default');
74
+ const audioStream = yield getAudioStream({
75
+ deviceId: 'default',
76
+ });
73
77
  yield call.publishAudioStream(audioStream);
74
78
  }));
75
79
  const handleTrackEnded = () => __awaiter(void 0, void 0, void 0, function* () {
76
80
  if (selectedAudioDeviceId === audioDeviceId) {
77
- const audioStream = yield getAudioStream(audioDeviceId);
81
+ const audioStream = yield getAudioStream({
82
+ deviceId: audioDeviceId,
83
+ });
78
84
  yield call.publishAudioStream(audioStream);
79
85
  }
80
86
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useAudioPublisher.js","sourceRoot":"","sources":["../../../../src/core/hooks/useAudioPublisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAudioPublisher.js","sourceRoot":"","sources":["../../../../src/core/hooks/useAudioPublisher.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { useCallback, useEffect } from 'react';
11
11
  import { map } from 'rxjs';
12
- import { CallingState, getVideoStream, OwnCapability, SfuModels, watchForAddedDefaultVideoDevice, watchForDisconnectedVideoDevice, } from '@stream-io/video-client';
13
- import { useCall, useCallCallingState, useCallState, useLocalParticipant, } from '@stream-io/video-react-bindings';
12
+ import { CallingState, getVideoStream, OwnCapability, SfuModels, VideoSettingsCameraFacingEnum, watchForAddedDefaultVideoDevice, watchForDisconnectedVideoDevice, } from '@stream-io/video-client';
13
+ import { useCall, useCallCallingState, useCallMetadata, useCallState, useLocalParticipant, } from '@stream-io/video-react-bindings';
14
14
  import { useDebugPreferredVideoCodec } from '../../components/Debug/useIsDebugMode';
15
15
  /**
16
16
  * @internal
@@ -24,6 +24,9 @@ export const useVideoPublisher = ({ initialVideoMuted, videoDeviceId, }) => {
24
24
  const { localParticipant$ } = callState;
25
25
  const preferredCodec = useDebugPreferredVideoCodec();
26
26
  const isPublishingVideo = participant === null || participant === void 0 ? void 0 : participant.publishedTracks.includes(SfuModels.TrackType.VIDEO);
27
+ const metadata = useCallMetadata();
28
+ const videoSettings = metadata === null || metadata === void 0 ? void 0 : metadata.settings.video;
29
+ const targetResolution = videoSettings === null || videoSettings === void 0 ? void 0 : videoSettings.target_resolution;
27
30
  const publishVideoStream = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
28
31
  if (!call)
29
32
  return;
@@ -31,13 +34,25 @@ export const useVideoPublisher = ({ initialVideoMuted, videoDeviceId, }) => {
31
34
  throw new Error(`No permission to publish video`);
32
35
  }
33
36
  try {
34
- const videoStream = yield getVideoStream(videoDeviceId);
37
+ const videoStream = yield getVideoStream({
38
+ deviceId: videoDeviceId,
39
+ width: targetResolution === null || targetResolution === void 0 ? void 0 : targetResolution.width,
40
+ height: targetResolution === null || targetResolution === void 0 ? void 0 : targetResolution.height,
41
+ facingMode: toFacingMode(videoSettings === null || videoSettings === void 0 ? void 0 : videoSettings.camera_facing),
42
+ });
35
43
  yield call.publishVideoStream(videoStream, { preferredCodec });
36
44
  }
37
45
  catch (e) {
38
46
  console.log('Failed to publish video stream', e);
39
47
  }
40
- }), [call, preferredCodec, videoDeviceId]);
48
+ }), [
49
+ call,
50
+ preferredCodec,
51
+ targetResolution === null || targetResolution === void 0 ? void 0 : targetResolution.height,
52
+ targetResolution === null || targetResolution === void 0 ? void 0 : targetResolution.width,
53
+ videoDeviceId,
54
+ videoSettings === null || videoSettings === void 0 ? void 0 : videoSettings.camera_facing,
55
+ ]);
41
56
  useEffect(() => {
42
57
  if (callingState === CallingState.JOINED && !initialVideoMuted) {
43
58
  publishVideoStream().catch((e) => {
@@ -71,12 +86,16 @@ export const useVideoPublisher = ({ initialVideoMuted, videoDeviceId, }) => {
71
86
  // We need to stop the original track first in order
72
87
  // we can retrieve the new default device stream
73
88
  track.stop();
74
- const videoStream = yield getVideoStream('default');
89
+ const videoStream = yield getVideoStream({
90
+ deviceId: 'default',
91
+ });
75
92
  yield call.publishVideoStream(videoStream);
76
93
  }));
77
94
  const handleTrackEnded = () => __awaiter(void 0, void 0, void 0, function* () {
78
95
  if (selectedVideoDeviceId === videoDeviceId) {
79
- const videoStream = yield getVideoStream(videoDeviceId);
96
+ const videoStream = yield getVideoStream({
97
+ deviceId: videoDeviceId,
98
+ });
80
99
  yield call.publishVideoStream(videoStream);
81
100
  }
82
101
  });
@@ -88,4 +107,14 @@ export const useVideoPublisher = ({ initialVideoMuted, videoDeviceId, }) => {
88
107
  }, [videoDeviceId, call, participant === null || participant === void 0 ? void 0 : participant.videoStream, isPublishingVideo]);
89
108
  return publishVideoStream;
90
109
  };
110
+ const toFacingMode = (value) => {
111
+ switch (value) {
112
+ case VideoSettingsCameraFacingEnum.FRONT:
113
+ return 'user';
114
+ case VideoSettingsCameraFacingEnum.BACK:
115
+ return 'environment';
116
+ default:
117
+ return undefined;
118
+ }
119
+ };
91
120
  //# sourceMappingURL=useVideoPublisher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useVideoPublisher.js","sourceRoot":"","sources":["../../../../src/core/hooks/useVideoPublisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useVideoPublisher.js","sourceRoot":"","sources":["../../../../src/core/hooks/useVideoPublisher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -25,9 +25,9 @@
25
25
  "@floating-ui/react": "^0.22.0",
26
26
  "@nivo/core": "^0.80.0",
27
27
  "@nivo/line": "^0.80.0",
28
- "@stream-io/i18n": "^0.0.1-alpha.31",
29
- "@stream-io/video-client": "^0.0.1-alpha.155",
30
- "@stream-io/video-react-bindings": "^0.0.1-alpha.42",
28
+ "@stream-io/i18n": "^0.0.1-alpha.33",
29
+ "@stream-io/video-client": "^0.0.1-alpha.157",
30
+ "@stream-io/video-react-bindings": "^0.0.1-alpha.44",
31
31
  "clsx": "^1.2.1",
32
32
  "rxjs": "~7.8.1"
33
33
  },
@@ -36,7 +36,7 @@
36
36
  "react-dom": "^18.0.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@stream-io/video-styling": "^0.0.1-alpha.25",
39
+ "@stream-io/video-styling": "^0.0.1-alpha.27",
40
40
  "@types/rimraf": "^3.0.2",
41
41
  "react": "^18.2.0",
42
42
  "react-dom": "^18.2.0",
@@ -45,5 +45,5 @@
45
45
  "typedoc": "^0.24.7",
46
46
  "typescript": "^4.9.5"
47
47
  },
48
- "version": "0.0.1-alpha.47"
48
+ "version": "0.0.1-alpha.49"
49
49
  }
@@ -2,7 +2,7 @@ import { useEffect, useState } from 'react';
2
2
  import { createSoundDetector, SfuModels } from '@stream-io/video-client';
3
3
  import { useLocalParticipant } from '@stream-io/video-react-bindings';
4
4
 
5
- import { useMediaDevices } from '../../core/contexts';
5
+ import { useMediaDevices } from '../../core';
6
6
  import { Notification } from './Notification';
7
7
  import { ChildrenOnly } from '../../types';
8
8
 
@@ -18,13 +18,14 @@ export const SpeakingWhileMutedNotification = ({ children }: ChildrenOnly) => {
18
18
  useEffect(() => {
19
19
  // do nothing when not muted
20
20
  if (!isAudioMute) return;
21
- const disposeSoundDetector = getAudioStream(audioDeviceId).then(
22
- (audioStream) =>
23
- createSoundDetector(audioStream, (isSpeechDetected) => {
24
- setIsSpeakingWhileMuted((isNotified) =>
25
- isNotified ? isNotified : isSpeechDetected,
26
- );
27
- }),
21
+ const disposeSoundDetector = getAudioStream({
22
+ deviceId: audioDeviceId,
23
+ }).then((audioStream) =>
24
+ createSoundDetector(audioStream, (isSpeechDetected) => {
25
+ setIsSpeakingWhileMuted((isNotified) =>
26
+ isNotified ? isNotified : isSpeechDetected,
27
+ );
28
+ }),
28
29
  );
29
30
  disposeSoundDetector.catch((err) => {
30
31
  console.error('Error while creating sound detector', err);
@@ -18,9 +18,9 @@ type InitWithCallInstance = {
18
18
  callType?: never;
19
19
  };
20
20
 
21
- type InitStreamMeeting = InitWithCallCID | InitWithCallInstance;
21
+ type InitStreamCall = InitWithCallCID | InitWithCallInstance;
22
22
 
23
- export type StreamMeetingProps = InitStreamMeeting & {
23
+ export type StreamCallProps = InitStreamCall & {
24
24
  /**
25
25
  * If true, the call will be joined automatically.
26
26
  * Set it to true if you want to join the call immediately.
@@ -41,7 +41,7 @@ export type StreamMeetingProps = InitStreamMeeting & {
41
41
  mediaDevicesProviderProps?: MediaDevicesProviderProps;
42
42
  };
43
43
 
44
- export const StreamMeeting = ({
44
+ export const StreamCall = ({
45
45
  children,
46
46
  callId,
47
47
  callType,
@@ -49,7 +49,7 @@ export const StreamMeeting = ({
49
49
  autoJoin = false,
50
50
  data,
51
51
  mediaDevicesProviderProps,
52
- }: PropsWithChildren<StreamMeetingProps>) => {
52
+ }: PropsWithChildren<StreamCallProps>) => {
53
53
  const client = useStreamVideoClient();
54
54
  const [activeCall, setActiveCall] = useState<Call | undefined>(() => {
55
55
  if (call) return call;
@@ -2,3 +2,4 @@ export * from './Stage';
2
2
 
3
3
  export * from './CallParticipantsView';
4
4
  export * from './CallParticipantsScreenView';
5
+ export * from './StreamCall';
@@ -69,7 +69,7 @@ export const VideoPreview = ({
69
69
  useEffect(() => {
70
70
  if (!initialVideoState.enabled) return;
71
71
 
72
- getVideoStream(selectedVideoDeviceId)
72
+ getVideoStream({ deviceId: selectedVideoDeviceId })
73
73
  .then((s) => {
74
74
  setStream((previousStream) => {
75
75
  if (previousStream) {
@@ -10,7 +10,6 @@ export * from './Notification';
10
10
  export * from './PendingCallPanel';
11
11
  export * from './Permissions';
12
12
  export * from './StreamCall';
13
- export * from './StreamMeeting';
14
13
  export * from './StreamTheme';
15
14
  export * from './Search';
16
15
  export * from './Tooltip';
@@ -88,8 +88,8 @@ const DEFAULT_DEVICE_ID = 'default';
88
88
  */
89
89
  export type MediaDevicesContextAPI = {
90
90
  disposeOfMediaStream: (stream: MediaStream) => void;
91
- getAudioStream: (deviceId?: string) => Promise<MediaStream>;
92
- getVideoStream: (deviceId?: string) => Promise<MediaStream>;
91
+ getAudioStream: typeof getAudioStream;
92
+ getVideoStream: typeof getVideoStream;
93
93
  isAudioOutputChangeSupported: boolean;
94
94
  initialAudioEnabled: boolean;
95
95
  initialVideoState: DeviceState;
@@ -47,7 +47,9 @@ export const useAudioPublisher = ({
47
47
  throw new Error(`No permission to publish audio`);
48
48
  }
49
49
  try {
50
- const audioStream = await getAudioStream(audioDeviceId);
50
+ const audioStream = await getAudioStream({
51
+ deviceId: audioDeviceId,
52
+ });
51
53
  await call.publishAudioStream(audioStream);
52
54
  } catch (e) {
53
55
  console.log('Failed to publish audio stream', e);
@@ -95,14 +97,18 @@ export const useAudioPublisher = ({
95
97
  // We need to stop the original track first in order
96
98
  // we can retrieve the new default device stream
97
99
  track.stop();
98
- const audioStream = await getAudioStream('default');
100
+ const audioStream = await getAudioStream({
101
+ deviceId: 'default',
102
+ });
99
103
  await call.publishAudioStream(audioStream);
100
104
  },
101
105
  );
102
106
 
103
107
  const handleTrackEnded = async () => {
104
108
  if (selectedAudioDeviceId === audioDeviceId) {
105
- const audioStream = await getAudioStream(audioDeviceId);
109
+ const audioStream = await getAudioStream({
110
+ deviceId: audioDeviceId,
111
+ });
106
112
  await call.publishAudioStream(audioStream);
107
113
  }
108
114
  };
@@ -5,12 +5,14 @@ import {
5
5
  getVideoStream,
6
6
  OwnCapability,
7
7
  SfuModels,
8
+ VideoSettingsCameraFacingEnum,
8
9
  watchForAddedDefaultVideoDevice,
9
10
  watchForDisconnectedVideoDevice,
10
11
  } from '@stream-io/video-client';
11
12
  import {
12
13
  useCall,
13
14
  useCallCallingState,
15
+ useCallMetadata,
14
16
  useCallState,
15
17
  useLocalParticipant,
16
18
  } from '@stream-io/video-react-bindings';
@@ -43,18 +45,33 @@ export const useVideoPublisher = ({
43
45
  SfuModels.TrackType.VIDEO,
44
46
  );
45
47
 
48
+ const metadata = useCallMetadata();
49
+ const videoSettings = metadata?.settings.video;
50
+ const targetResolution = videoSettings?.target_resolution;
46
51
  const publishVideoStream = useCallback(async () => {
47
52
  if (!call) return;
48
53
  if (!call.permissionsContext.hasPermission(OwnCapability.SEND_VIDEO)) {
49
54
  throw new Error(`No permission to publish video`);
50
55
  }
51
56
  try {
52
- const videoStream = await getVideoStream(videoDeviceId);
57
+ const videoStream = await getVideoStream({
58
+ deviceId: videoDeviceId,
59
+ width: targetResolution?.width,
60
+ height: targetResolution?.height,
61
+ facingMode: toFacingMode(videoSettings?.camera_facing),
62
+ });
53
63
  await call.publishVideoStream(videoStream, { preferredCodec });
54
64
  } catch (e) {
55
65
  console.log('Failed to publish video stream', e);
56
66
  }
57
- }, [call, preferredCodec, videoDeviceId]);
67
+ }, [
68
+ call,
69
+ preferredCodec,
70
+ targetResolution?.height,
71
+ targetResolution?.width,
72
+ videoDeviceId,
73
+ videoSettings?.camera_facing,
74
+ ]);
58
75
 
59
76
  useEffect(() => {
60
77
  if (callingState === CallingState.JOINED && !initialVideoMuted) {
@@ -97,14 +114,18 @@ export const useVideoPublisher = ({
97
114
  // We need to stop the original track first in order
98
115
  // we can retrieve the new default device stream
99
116
  track.stop();
100
- const videoStream = await getVideoStream('default');
117
+ const videoStream = await getVideoStream({
118
+ deviceId: 'default',
119
+ });
101
120
  await call.publishVideoStream(videoStream);
102
121
  },
103
122
  );
104
123
 
105
124
  const handleTrackEnded = async () => {
106
125
  if (selectedVideoDeviceId === videoDeviceId) {
107
- const videoStream = await getVideoStream(videoDeviceId);
126
+ const videoStream = await getVideoStream({
127
+ deviceId: videoDeviceId,
128
+ });
108
129
  await call.publishVideoStream(videoStream);
109
130
  }
110
131
  };
@@ -118,3 +139,14 @@ export const useVideoPublisher = ({
118
139
 
119
140
  return publishVideoStream;
120
141
  };
142
+
143
+ const toFacingMode = (value: VideoSettingsCameraFacingEnum | undefined) => {
144
+ switch (value) {
145
+ case VideoSettingsCameraFacingEnum.FRONT:
146
+ return 'user';
147
+ case VideoSettingsCameraFacingEnum.BACK:
148
+ return 'environment';
149
+ default:
150
+ return undefined;
151
+ }
152
+ };
@@ -1 +0,0 @@
1
- {"version":3,"file":"StreamMeeting.js","sourceRoot":"","sources":["../../../../src/components/StreamMeeting/StreamMeeting.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAQ,YAAY,EAAgB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAA6B,MAAM,YAAY,CAAC;AAqC7E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,IAAI,EACJ,yBAAyB,GACa,EAAE,EAAE;IAC1C,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAmB,GAAG,EAAE;QAClE,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,IAAI,MAAM,IAAI,QAAQ,IAAI,CAAC,UAAU,EAAE;YACrC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9C,aAAa,CAAC,OAAO,CAAC,CAAC;SACxB;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,YAAY,MAAK,YAAY,CAAC,IAAI,EAAE;YACpE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjC,OAAO,CACL,KAAC,kBAAkB,kBAAC,IAAI,EAAE,UAAU,gBAClC,KAAC,oBAAoB,oBAAK,yBAAyB,cAChD,QAAQ,IACY,IACJ,CACtB,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export * from './StreamMeeting';
@@ -1,2 +0,0 @@
1
- export * from './StreamMeeting';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/StreamMeeting/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -1 +0,0 @@
1
- export * from './StreamMeeting';