@stream-io/video-react-sdk 0.0.49 → 0.0.50

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.0.50](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-0.0.49...@stream-io/video-react-sdk-0.0.50) (2023-06-23)
6
+
7
+ ### Dependency Updates
8
+
9
+ * `@stream-io/video-client` updated to version `0.0.1`
10
+ * `@stream-io/video-react-bindings` updated to version `0.0.26`
11
+
12
+ ### Bug Fixes
13
+
14
+ * **react-sdk:** check browser permissions before watching disconnected device ([#700](https://github.com/GetStream/stream-video-js/issues/700)) ([50b8968](https://github.com/GetStream/stream-video-js/commit/50b8968aeaf73d70e2ed081353eb41063f484bdb))
15
+
5
16
  ### [0.0.49](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-0.0.48...@stream-io/video-react-sdk-0.0.49) (2023-06-23)
6
17
 
7
18
  ### Dependency Updates
@@ -57,8 +57,8 @@ export const MediaDevicesProvider = ({ children, initialAudioEnabled, initialVid
57
57
  const callState = useCallState();
58
58
  const metadata = useCallMetadata();
59
59
  const { localParticipant$ } = callState;
60
- const canObserveVideo = useHasBrowserPermissions('camera');
61
- const canObserveAudio = useHasBrowserPermissions('microphone');
60
+ const hasBrowserPermissionVideoInput = useHasBrowserPermissions('camera');
61
+ const hasBrowserPermissionAudioInput = useHasBrowserPermissions('microphone');
62
62
  const [selectedAudioInputDeviceId, selectAudioInputDeviceId] = useState(initialAudioInputDeviceId);
63
63
  const [selectedAudioOutputDeviceId, selectAudioOutputDeviceId] = useState(initialAudioOutputDeviceId);
64
64
  const [selectedVideoDeviceId, selectVideoDeviceId] = useState(initialVideoInputDeviceId);
@@ -123,11 +123,11 @@ export const MediaDevicesProvider = ({ children, initialAudioEnabled, initialVid
123
123
  selectAudioOutputDeviceId(deviceId);
124
124
  }
125
125
  }, []);
126
- useAudioInputDeviceFallback(() => switchDevice('audioinput', DEFAULT_DEVICE_ID), canObserveAudio, selectedAudioInputDeviceId);
126
+ useAudioInputDeviceFallback(() => switchDevice('audioinput', DEFAULT_DEVICE_ID), hasBrowserPermissionAudioInput, selectedAudioInputDeviceId);
127
127
  useAudioOutputDeviceFallback(() => switchDevice('audiooutput', DEFAULT_DEVICE_ID),
128
128
  // audiooutput devices can be enumerated only with microphone permissions
129
- canObserveAudio, selectedAudioOutputDeviceId);
130
- useVideoDeviceFallback(() => switchDevice('videoinput', DEFAULT_DEVICE_ID), canObserveVideo, selectedVideoDeviceId);
129
+ hasBrowserPermissionAudioInput, selectedAudioOutputDeviceId);
130
+ useVideoDeviceFallback(() => switchDevice('videoinput', DEFAULT_DEVICE_ID), hasBrowserPermissionVideoInput, selectedVideoDeviceId);
131
131
  useEffect(() => {
132
132
  if (!call || callingState !== CallingState.JOINED)
133
133
  return;
@@ -135,7 +135,7 @@ export const MediaDevicesProvider = ({ children, initialAudioEnabled, initialVid
135
135
  }, [call, callingState, selectedAudioOutputDeviceId]);
136
136
  useEffect(() => {
137
137
  // audiooutput devices can be enumerated only with microphone permissions
138
- if (!localParticipant$ || !canObserveAudio)
138
+ if (!localParticipant$ || !hasBrowserPermissionAudioInput)
139
139
  return;
140
140
  const subscription = watchForDisconnectedAudioOutputDevice(localParticipant$.pipe(map((p) => p === null || p === void 0 ? void 0 : p.audioOutputDeviceId))).subscribe(() => __awaiter(void 0, void 0, void 0, function* () {
141
141
  selectAudioOutputDeviceId(DEFAULT_DEVICE_ID);
@@ -143,7 +143,7 @@ export const MediaDevicesProvider = ({ children, initialAudioEnabled, initialVid
143
143
  return () => {
144
144
  subscription.unsubscribe();
145
145
  };
146
- }, [canObserveAudio, localParticipant$]);
146
+ }, [hasBrowserPermissionAudioInput, localParticipant$]);
147
147
  const contextValue = {
148
148
  disposeOfMediaStream,
149
149
  getAudioStream,
@@ -1 +1 @@
1
- {"version":3,"file":"MediaDevicesContext.js","sourceRoot":"","sources":["../../../../src/core/contexts/MediaDevicesContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaDevicesContext.js","sourceRoot":"","sources":["../../../../src/core/contexts/MediaDevicesContext.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@
2
2
  * @internal
3
3
  */
4
4
  export type AudioPublisherInit = {
5
- canObserveAudio?: boolean;
6
5
  initialAudioMuted?: boolean;
7
6
  audioDeviceId?: string;
8
7
  };
@@ -10,4 +9,4 @@ export type AudioPublisherInit = {
10
9
  * @internal
11
10
  * @category Device Management
12
11
  */
13
- export declare const useAudioPublisher: ({ canObserveAudio, initialAudioMuted, audioDeviceId, }: AudioPublisherInit) => () => Promise<void>;
12
+ export declare const useAudioPublisher: ({ initialAudioMuted, audioDeviceId, }: AudioPublisherInit) => () => Promise<void>;
@@ -11,15 +11,17 @@ import { useCallback, useEffect, useRef } from 'react';
11
11
  import { map } from 'rxjs';
12
12
  import { CallingState, getAudioStream, OwnCapability, SfuModels, watchForAddedDefaultAudioDevice, watchForDisconnectedAudioDevice, } from '@stream-io/video-client';
13
13
  import { useCall, useCallCallingState, useCallState, useLocalParticipant, } from '@stream-io/video-react-bindings';
14
+ import { useHasBrowserPermissions } from './useDevices';
14
15
  /**
15
16
  * @internal
16
17
  * @category Device Management
17
18
  */
18
- export const useAudioPublisher = ({ canObserveAudio, initialAudioMuted, audioDeviceId, }) => {
19
+ export const useAudioPublisher = ({ initialAudioMuted, audioDeviceId, }) => {
19
20
  const call = useCall();
20
21
  const callState = useCallState();
21
22
  const callingState = useCallCallingState();
22
23
  const participant = useLocalParticipant();
24
+ const hasBrowserPermissionAudioInput = useHasBrowserPermissions('microphone');
23
25
  const { localParticipant$ } = callState;
24
26
  const isPublishingAudio = participant === null || participant === void 0 ? void 0 : participant.publishedTracks.includes(SfuModels.TrackType.AUDIO);
25
27
  const publishAudioStream = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
@@ -54,7 +56,7 @@ export const useAudioPublisher = ({ canObserveAudio, initialAudioMuted, audioDev
54
56
  }
55
57
  }, [callingState, initialAudioMuted, isPublishingAudio, publishAudioStream]);
56
58
  useEffect(() => {
57
- if (!localParticipant$ || !canObserveAudio)
59
+ if (!localParticipant$ || !hasBrowserPermissionAudioInput)
58
60
  return;
59
61
  const subscription = watchForDisconnectedAudioDevice(localParticipant$.pipe(map((p) => p === null || p === void 0 ? void 0 : p.audioDeviceId))).subscribe(() => __awaiter(void 0, void 0, void 0, function* () {
60
62
  if (!call)
@@ -65,7 +67,7 @@ export const useAudioPublisher = ({ canObserveAudio, initialAudioMuted, audioDev
65
67
  return () => {
66
68
  subscription.unsubscribe();
67
69
  };
68
- }, [canObserveAudio, localParticipant$, call]);
70
+ }, [hasBrowserPermissionAudioInput, localParticipant$, call]);
69
71
  useEffect(() => {
70
72
  if (!(participant === null || participant === void 0 ? void 0 : participant.audioStream) || !call || !isPublishingAudio)
71
73
  return;
@@ -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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"}
@@ -2,7 +2,6 @@
2
2
  * @internal
3
3
  */
4
4
  export type VideoPublisherInit = {
5
- canObserveVideo?: boolean;
6
5
  initialVideoMuted?: boolean;
7
6
  videoDeviceId?: string;
8
7
  };
@@ -10,4 +9,4 @@ export type VideoPublisherInit = {
10
9
  * @internal
11
10
  * @category Device Management
12
11
  */
13
- export declare const useVideoPublisher: ({ canObserveVideo, initialVideoMuted, videoDeviceId, }: VideoPublisherInit) => () => Promise<void>;
12
+ export declare const useVideoPublisher: ({ initialVideoMuted, videoDeviceId, }: VideoPublisherInit) => () => Promise<void>;
@@ -12,15 +12,17 @@ import { map } from 'rxjs';
12
12
  import { CallingState, getVideoStream, OwnCapability, SfuModels, VideoSettingsCameraFacingEnum, watchForAddedDefaultVideoDevice, watchForDisconnectedVideoDevice, } from '@stream-io/video-client';
13
13
  import { useCall, useCallCallingState, useCallMetadata, useCallState, useLocalParticipant, } from '@stream-io/video-react-bindings';
14
14
  import { useDebugPreferredVideoCodec } from '../../components/Debug/useIsDebugMode';
15
+ import { useHasBrowserPermissions } from './useDevices';
15
16
  /**
16
17
  * @internal
17
18
  * @category Device Management
18
19
  */
19
- export const useVideoPublisher = ({ canObserveVideo, initialVideoMuted, videoDeviceId, }) => {
20
+ export const useVideoPublisher = ({ initialVideoMuted, videoDeviceId, }) => {
20
21
  const call = useCall();
21
22
  const callState = useCallState();
22
23
  const callingState = useCallCallingState();
23
24
  const participant = useLocalParticipant();
25
+ const hasBrowserPermissionVideoInput = useHasBrowserPermissions('camera');
24
26
  const { localParticipant$ } = callState;
25
27
  const preferredCodec = useDebugPreferredVideoCodec();
26
28
  const isPublishingVideo = participant === null || participant === void 0 ? void 0 : participant.publishedTracks.includes(SfuModels.TrackType.VIDEO);
@@ -69,7 +71,7 @@ export const useVideoPublisher = ({ canObserveVideo, initialVideoMuted, videoDev
69
71
  }
70
72
  }, [callingState, initialVideoMuted, isPublishingVideo, publishVideoStream]);
71
73
  useEffect(() => {
72
- if (!localParticipant$ || !canObserveVideo)
74
+ if (!localParticipant$ || !hasBrowserPermissionVideoInput)
73
75
  return;
74
76
  const subscription = watchForDisconnectedVideoDevice(localParticipant$.pipe(map((p) => p === null || p === void 0 ? void 0 : p.videoDeviceId))).subscribe(() => __awaiter(void 0, void 0, void 0, function* () {
75
77
  if (!call)
@@ -80,7 +82,7 @@ export const useVideoPublisher = ({ canObserveVideo, initialVideoMuted, videoDev
80
82
  return () => {
81
83
  subscription.unsubscribe();
82
84
  };
83
- }, [canObserveVideo, localParticipant$, call]);
85
+ }, [hasBrowserPermissionVideoInput, localParticipant$, call]);
84
86
  useEffect(() => {
85
87
  if (!(participant === null || participant === void 0 ? void 0 : participant.videoStream) || !call || !isPublishingVideo)
86
88
  return;
@@ -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":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,SAAS,EACT,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,OAAO,EACP,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAUxD;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,iBAAiB,EACjB,aAAa,GACM,EAAE,EAAE;IACvB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC;IAC1C,MAAM,8BAA8B,GAAG,wBAAwB,CAC7D,QAA0B,CAC3B,CAAC;IACF,MAAM,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAExC,MAAM,cAAc,GAAG,2BAA2B,EAAE,CAAC;IACrD,MAAM,iBAAiB,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,CAAC,QAAQ,CAC7D,SAAS,CAAC,SAAS,CAAC,KAAK,CAC1B,CAAC;IAEF,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,KAAK,CAAC;IAC/C,MAAM,gBAAgB,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,iBAAiB,CAAC;IAC1D,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAS,EAAE;QAChD,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;YACpE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,IAAI;YACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC;gBACvC,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK;gBAC9B,MAAM,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM;gBAChC,UAAU,EAAE,YAAY,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,CAAC;aACvD,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;SAChE;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;SAClD;IACH,CAAC,CAAA,EAAE;QACD,IAAI;QACJ,cAAc;QACd,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM;QACxB,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK;QACvB,aAAa;QACb,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa;KAC7B,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,KAAK,YAAY,CAAC,MAAM,EAAE;YACxC,IACE,CAAC,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;gBAClD,iBAAiB,EACjB;gBACA,gDAAgD;gBAChD,gEAAgE;gBAChE,8DAA8D;gBAC9D,kBAAkB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC/B,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;gBACH,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;aAClC;SACF;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE7E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,iBAAiB,IAAI,CAAC,8BAA8B;YAAE,OAAO;QAClE,MAAM,YAAY,GAAG,+BAA+B,CAClD,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,aAAa,CAAC,CAAC,CACrD,CAAC,SAAS,CAAC,GAAS,EAAE;YACrB,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CAAA,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,8BAA8B,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;IAE9D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,CAAA,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAErE,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QACzD,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;QAE3D,MAAM,sBAAsB,GAAG,+BAA+B,EAAE,CAAC,SAAS,CACxE,GAAS,EAAE;YACT,IACE,CAAC,CACC,IAAI;gBACJ,WAAW,CAAC,WAAW;gBACvB,qBAAqB,KAAK,SAAS,CACpC;gBAED,OAAO;YACT,oDAAoD;YACpD,gDAAgD;YAChD,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC;gBACvC,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAA,CACF,CAAC;QAEF,MAAM,gBAAgB,GAAG,GAAS,EAAE;YAClC,IAAI,qBAAqB,KAAK,aAAa,EAAE;gBAC3C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC;oBACvC,QAAQ,EAAE,aAAa;iBACxB,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;aAC5C;QACH,CAAC,CAAA,CAAC;QAEF,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAClD,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACrD,sBAAsB,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEvE,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAgD,EAAE,EAAE;IACxE,QAAQ,KAAK,EAAE;QACb,KAAK,6BAA6B,CAAC,KAAK;YACtC,OAAO,MAAM,CAAC;QAChB,KAAK,6BAA6B,CAAC,IAAI;YACrC,OAAO,aAAa,CAAC;QACvB;YACE,OAAO,SAAS,CAAC;KACpB;AACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -25,8 +25,8 @@
25
25
  "@nivo/core": "^0.80.0",
26
26
  "@nivo/line": "^0.80.0",
27
27
  "@stream-io/i18n": "^0.0.6",
28
- "@stream-io/video-client": "^0.0.24",
29
- "@stream-io/video-react-bindings": "^0.0.25",
28
+ "@stream-io/video-client": "^0.0.25",
29
+ "@stream-io/video-react-bindings": "^0.0.26",
30
30
  "clsx": "^1.2.1",
31
31
  "rxjs": "~7.8.1"
32
32
  },
@@ -45,5 +45,5 @@
45
45
  "rimraf": "^3.0.2",
46
46
  "typescript": "^4.9.5"
47
47
  },
48
- "version": "0.0.49"
48
+ "version": "0.0.50"
49
49
  }
@@ -244,8 +244,10 @@ export const MediaDevicesProvider = ({
244
244
  const callState = useCallState();
245
245
  const metadata = useCallMetadata();
246
246
  const { localParticipant$ } = callState;
247
- const canObserveVideo = useHasBrowserPermissions('camera' as PermissionName);
248
- const canObserveAudio = useHasBrowserPermissions(
247
+ const hasBrowserPermissionVideoInput = useHasBrowserPermissions(
248
+ 'camera' as PermissionName,
249
+ );
250
+ const hasBrowserPermissionAudioInput = useHasBrowserPermissions(
249
251
  'microphone' as PermissionName,
250
252
  );
251
253
  const [selectedAudioInputDeviceId, selectAudioInputDeviceId] = useState<
@@ -349,18 +351,18 @@ export const MediaDevicesProvider = ({
349
351
 
350
352
  useAudioInputDeviceFallback(
351
353
  () => switchDevice('audioinput', DEFAULT_DEVICE_ID),
352
- canObserveAudio,
354
+ hasBrowserPermissionAudioInput,
353
355
  selectedAudioInputDeviceId,
354
356
  );
355
357
  useAudioOutputDeviceFallback(
356
358
  () => switchDevice('audiooutput', DEFAULT_DEVICE_ID),
357
359
  // audiooutput devices can be enumerated only with microphone permissions
358
- canObserveAudio,
360
+ hasBrowserPermissionAudioInput,
359
361
  selectedAudioOutputDeviceId,
360
362
  );
361
363
  useVideoDeviceFallback(
362
364
  () => switchDevice('videoinput', DEFAULT_DEVICE_ID),
363
- canObserveVideo,
365
+ hasBrowserPermissionVideoInput,
364
366
  selectedVideoDeviceId,
365
367
  );
366
368
 
@@ -371,7 +373,7 @@ export const MediaDevicesProvider = ({
371
373
 
372
374
  useEffect(() => {
373
375
  // audiooutput devices can be enumerated only with microphone permissions
374
- if (!localParticipant$ || !canObserveAudio) return;
376
+ if (!localParticipant$ || !hasBrowserPermissionAudioInput) return;
375
377
 
376
378
  const subscription = watchForDisconnectedAudioOutputDevice(
377
379
  localParticipant$.pipe(map((p) => p?.audioOutputDeviceId)),
@@ -381,7 +383,7 @@ export const MediaDevicesProvider = ({
381
383
  return () => {
382
384
  subscription.unsubscribe();
383
385
  };
384
- }, [canObserveAudio, localParticipant$]);
386
+ }, [hasBrowserPermissionAudioInput, localParticipant$]);
385
387
 
386
388
  const contextValue: MediaDevicesContextAPI = {
387
389
  disposeOfMediaStream,
@@ -14,12 +14,12 @@ import {
14
14
  useCallState,
15
15
  useLocalParticipant,
16
16
  } from '@stream-io/video-react-bindings';
17
+ import { useHasBrowserPermissions } from './useDevices';
17
18
 
18
19
  /**
19
20
  * @internal
20
21
  */
21
22
  export type AudioPublisherInit = {
22
- canObserveAudio?: boolean;
23
23
  initialAudioMuted?: boolean;
24
24
  audioDeviceId?: string;
25
25
  };
@@ -29,7 +29,6 @@ export type AudioPublisherInit = {
29
29
  * @category Device Management
30
30
  */
31
31
  export const useAudioPublisher = ({
32
- canObserveAudio,
33
32
  initialAudioMuted,
34
33
  audioDeviceId,
35
34
  }: AudioPublisherInit) => {
@@ -37,6 +36,9 @@ export const useAudioPublisher = ({
37
36
  const callState = useCallState();
38
37
  const callingState = useCallCallingState();
39
38
  const participant = useLocalParticipant();
39
+ const hasBrowserPermissionAudioInput = useHasBrowserPermissions(
40
+ 'microphone' as PermissionName,
41
+ );
40
42
  const { localParticipant$ } = callState;
41
43
 
42
44
  const isPublishingAudio = participant?.publishedTracks.includes(
@@ -77,7 +79,7 @@ export const useAudioPublisher = ({
77
79
  }, [callingState, initialAudioMuted, isPublishingAudio, publishAudioStream]);
78
80
 
79
81
  useEffect(() => {
80
- if (!localParticipant$ || !canObserveAudio) return;
82
+ if (!localParticipant$ || !hasBrowserPermissionAudioInput) return;
81
83
  const subscription = watchForDisconnectedAudioDevice(
82
84
  localParticipant$.pipe(map((p) => p?.audioDeviceId)),
83
85
  ).subscribe(async () => {
@@ -88,7 +90,7 @@ export const useAudioPublisher = ({
88
90
  return () => {
89
91
  subscription.unsubscribe();
90
92
  };
91
- }, [canObserveAudio, localParticipant$, call]);
93
+ }, [hasBrowserPermissionAudioInput, localParticipant$, call]);
92
94
 
93
95
  useEffect(() => {
94
96
  if (!participant?.audioStream || !call || !isPublishingAudio) return;
@@ -17,12 +17,12 @@ import {
17
17
  useLocalParticipant,
18
18
  } from '@stream-io/video-react-bindings';
19
19
  import { useDebugPreferredVideoCodec } from '../../components/Debug/useIsDebugMode';
20
+ import { useHasBrowserPermissions } from './useDevices';
20
21
 
21
22
  /**
22
23
  * @internal
23
24
  */
24
25
  export type VideoPublisherInit = {
25
- canObserveVideo?: boolean;
26
26
  initialVideoMuted?: boolean;
27
27
  videoDeviceId?: string;
28
28
  };
@@ -32,7 +32,6 @@ export type VideoPublisherInit = {
32
32
  * @category Device Management
33
33
  */
34
34
  export const useVideoPublisher = ({
35
- canObserveVideo,
36
35
  initialVideoMuted,
37
36
  videoDeviceId,
38
37
  }: VideoPublisherInit) => {
@@ -40,6 +39,9 @@ export const useVideoPublisher = ({
40
39
  const callState = useCallState();
41
40
  const callingState = useCallCallingState();
42
41
  const participant = useLocalParticipant();
42
+ const hasBrowserPermissionVideoInput = useHasBrowserPermissions(
43
+ 'camera' as PermissionName,
44
+ );
43
45
  const { localParticipant$ } = callState;
44
46
 
45
47
  const preferredCodec = useDebugPreferredVideoCodec();
@@ -94,7 +96,7 @@ export const useVideoPublisher = ({
94
96
  }, [callingState, initialVideoMuted, isPublishingVideo, publishVideoStream]);
95
97
 
96
98
  useEffect(() => {
97
- if (!localParticipant$ || !canObserveVideo) return;
99
+ if (!localParticipant$ || !hasBrowserPermissionVideoInput) return;
98
100
  const subscription = watchForDisconnectedVideoDevice(
99
101
  localParticipant$.pipe(map((p) => p?.videoDeviceId)),
100
102
  ).subscribe(async () => {
@@ -105,7 +107,7 @@ export const useVideoPublisher = ({
105
107
  return () => {
106
108
  subscription.unsubscribe();
107
109
  };
108
- }, [canObserveVideo, localParticipant$, call]);
110
+ }, [hasBrowserPermissionVideoInput, localParticipant$, call]);
109
111
 
110
112
  useEffect(() => {
111
113
  if (!participant?.videoStream || !call || !isPublishingVideo) return;