Plugin Demo: Screen Sharing

Demo details

This demo, as the Video Conferencing one, makes use of the Video Room plugin. Unlike
the video conferencing scenario, though, this demo implements a webinar kind of scenario:
that is, it allows a single user to share their screen with a set of passive
viewers.

When started, the demo asks you whether you want to be the one sharing the screen
(or an application you're using, if your browser version is recent enough)
or a viewer to an existing session. When sharing your screen/application, an ID will be returned
that you'll be able to share with other people to act as viewers. Just notice that,
for the sake of simplicity, just the screen is shared, without any additional audio
and video feed: you may want to try and add those yourself to the demo, by relying,
for instance, on the AudioBridge plugin for the purpose.

Note well! Sharing your screen is an experimental
feature in WebRTC, and only works if the browser you're using meets particular requirements.
If you're using a relatively recent version of Chrome (34+), you'll need to install
this extension.
If you're using an older verson of Chrome, instead, you'll need to manually enable the Chrome flag
chrome://flags/#enable-usermedia-screen-capture
or otherwise you'll get a permission error. Besides, please beware that some versions of Chrome may only
support the feature if you explicitly pass the --enable-usermedia-screen-capturing
parameter on the command line. Finally, active screen/application sharing will only work from
Firefox if you have at least version 33 installed: if so, make sure you also manually enable
the media.getusermedia.screensharing.enabled setting in
about:config, and that the domain this web application is from
is listed in media.getusermedia.screensharing.allowed_domains.

Note well (part 2)! If you want to share your screen, you may need to open
the HTTPS version of this page. If Janus is not behind the same webserver
as the pages that are served (that is, you didn't configure a proxying of HTTP requests
to Janus via a web frontend, e.g., Apache HTTPD), make sure you started it
with HTTPS support as well, since for security reasons you cannot contact an HTTP
backend if the page has been served via HTTPS. Besides, if you configured Janus
to make use of self-signed certificates, try and open a generic link served by Janus
in the browser itself, or otherwise AJAX requests to it will fail due to the unsafe
nature of the certificate.