Skip to content

Commit d9b4d3c

Browse files
authored
Merge pull request #191 from screego/unsupported-errors
fix: add unsupported browser error
2 parents a09b4e9 + a24ca71 commit d9b4d3c

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

ui/src/useRoom.ts

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -317,17 +317,31 @@ export const useRoom = (config: UIConfig): UseRoom => {
317317
const share = async () => {
318318
if (!navigator.mediaDevices) {
319319
enqueueSnackbar(
320-
'Could not start presentation. (mediaDevices undefined) Are you using https?',
321-
{
322-
variant: 'error',
323-
persist: true,
324-
}
320+
'Could not start presentation. Are you using https? (mediaDevices undefined)',
321+
{variant: 'error', persist: true}
325322
);
326323
return;
327324
}
328-
stream.current = await navigator.mediaDevices.getDisplayMedia({
329-
video: {frameRate: loadSettings().framerate},
330-
});
325+
if (typeof navigator.mediaDevices.getDisplayMedia !== 'function') {
326+
enqueueSnackbar(
327+
`Could not start presentation. Your browser likely doesn't support screensharing. (mediaDevices.getDeviceMedia ${typeof navigator.mediaDevices.getDisplayMedia})`,
328+
{variant: 'error', persist: true}
329+
);
330+
return;
331+
}
332+
try {
333+
stream.current = await navigator.mediaDevices.getDisplayMedia({
334+
video: {frameRate: loadSettings().framerate},
335+
});
336+
} catch (e) {
337+
console.log('Could not getDisplayMedia', e);
338+
enqueueSnackbar(`Could not start presentation. (getDisplayMedia error). ${e}`, {
339+
variant: 'error',
340+
persist: true,
341+
});
342+
return;
343+
}
344+
331345
stream.current?.getVideoTracks()[0].addEventListener('ended', () => stopShare());
332346
setState((current) => (current ? {...current, hostStream: stream.current} : current));
333347

0 commit comments

Comments
 (0)