On 5/6/2013 1:50 AM, Eric Rescorla wrote:
> FWIW, Facetime's current behavior, is to freeze the current
> camera image but maintain the microphone. It would be
> easy for us to do the same.
(I'll note that Facetime can be considered a "trusted" app...)
If we do that, we obviously need to keep a visible indication that
there's an active mic sending to the other person (notification bar I'd
assume).
On desktop, we can't really do this well - we could do it for switches
from one tab to another (though it might not be the commonly expected
behavior, as most standalone and plugin video chat apps (Hangouts,
Skype, etc) don't do this), but there's no easy way to know if our
window is obscured, and if it is, how much obscuring is "enough" to
pause the video? This was discussed in the standards groups as well,
and the general consensus there IIRC was that we had to be able to leave
it active, and that we'd write language stating that indication that the
mic/camera are active must remain visible in the browser chrome.
One random example: voice command and gesture assistants. You run an
app in a background tab that listens for voice commands and watches for
gesture commands.
It's also complicated since this is defining how getUserMedia() works,
not PeerConnection.
The other option would be to freeze video (or video and audio), unless
the app has a higher permission level granted by the user. In theory you
could use the chrome recording indicator as a way to grant background
access, or you could say "trusted" apps can use an API to say "I want
background access" and untrusted apps that use it would pop a chrome
request for such access.
Also: some of the above reasoning is specific to desktop and doesn't
apply well to mobile. On mobile, the default could be the same as
Facetime, or it could always force that with no way to override.
Randell