Media/getUserMedia/Desktop gUM UI

From MozillaWiki
Jump to: navigation, search

getUserMedia Desktop UI

Background on getUserMedia

getUserMedia is a new API for capturing a user's camera and/or microphone data. Some call an API like this "the Holy Grail" of web development because developers have had to rely on browser plugins (like Flash or Silverlight) for this kind of functionality.

WebRTC, which adds real-time video/audio calling functionality to the browser, depends on getUserMedia for access to the user's video and audio data. There's lots more information about webrtc at http://webrtc.org.

The working groups who are defining this technology do not trust websites and apps using these APIs to inform the user reliably when an API is trying to access the user's camera or microphone data. So the Media Capture Task Force (the group that is writing the getUserMedia spec) mandates that the permission and notification UI for getUserMedia be controlled entirely by the browser.

Current UI requirements & initial implementation

Simply put, the browser must:

  1. Clearly state that a website is trying to access the user's camera and/or microphone, and then ask the user if he/she grants permission to do this
  2. Notify the user that permission has been granted (exactly how is unspecified)
  3. Make certain that the user knows the camera and/or microphone are active while they are in use -- even if the browser window is obscured (again, exactly how is unspecified).

Thus far, we have the following UI for desktop getUserMedia: First iteration spec 21 xs and menus.png

Here is what the current camera permission box looks like: Permission linux.png

If you run Chrome M23 or later (https://www.google.com/intl/en/chrome/browser/) and browse to http://neave.com/webcam/html5/ , you can see Chrome's existing getUserMedia UI.

The spec for getUserMedia is still being written. So we still have an opportunity to make suggested updates.

Future work/Open questions

One open question is whether the browser should also show and control the camera preview (let the user see exactly what camera data will be going to the website/app) before granting camera access. No other browser is doing this, and this can probably be a "version 2" feature, but we will be discussing this at upcoming Media Capture Task Force meetings.