File tree Expand file tree Collapse file tree 1 file changed +22
-8
lines changed Expand file tree Collapse file tree 1 file changed +22
-8
lines changed Original file line number Diff line number Diff line change @@ -317,17 +317,31 @@ export const useRoom = (config: UIConfig): UseRoom => {
317
317
const share = async ( ) => {
318
318
if ( ! navigator . mediaDevices ) {
319
319
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 }
325
322
) ;
326
323
return ;
327
324
}
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
+
331
345
stream . current ?. getVideoTracks ( ) [ 0 ] . addEventListener ( 'ended' , ( ) => stopShare ( ) ) ;
332
346
setState ( ( current ) => ( current ? { ...current , hostStream : stream . current } : current ) ) ;
333
347
You can’t perform that action at this time.
0 commit comments