File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments