Reputation: 661
In Google Meet, if you click "Present Now" then "A Chrome Tab", it brings up a window that lets you share from another tab. This is different to the standard Screen Capture API as if you simply run
navigator.mediaDevices.getDisplayMedia({
video: true,
audio: true,
})
you get a window where you can choose between sharing your whole screen, sharing a window, or sharing a tab. I would like to limit this to tab only. I have tried applying constraints like:
video: { displaySurface: 'browser' }
or
video: { displaySurface: { exact: 'browser' } }
however, the specs say that this doesn't work and indeed it doesn't. But if that's the case, then how does Google Meet do it?
Upvotes: 10
Views: 3670
Reputation: 17330
Google Meet uses the older extension API for screensharing. This API allows restricting the source types. It is still available but requires an extension (Google meet delivers a preinstalled extensions).
The standard getDisplayMedia does not allow restricting the types of displaySurface.
Update 2022: as on Chrome 107 some of these options are available via getDisplayMedia too, see this blog post for details
Upvotes: 15