W3C home > Mailing lists > Public > public-device-apis@w3.org > May 2013

Camera Flash access required

From: Alexandre Morgaut <Alexandre.Morgaut@4d.com>
Date: Thu, 30 May 2013 14:50:14 +0200
To: "public-device-apis@w3.org" <public-device-apis@w3.org>
Message-ID: <BB036763-3D1D-404B-8717-713D3F9DC0BD@4d.com>

We recently had a meeting with a team which made a native app and wanted to make it as a Mobile Web app

The application use the camera to take specific pictures in 2 versions in a very short time:
- one version with the flash on
- one version without the flash off
Both versions are really mandatory for the expected image analysis

As mentioned in this blog post:

> The camera’s flash mechanism isn’t programmatically controllable


There is no mention in the current getUserMedia API specification

nore in the HTML Media capture one

On DAP Mailing lists I found minor mentions:
- http://lists.w3.org/Archives/Public/public-device-apis/2009Dec/0192.html

- http://lists.w3.org/Archives/Public/public-device-apis/2010Jan/0025.html

They just mention a way to know if a flash is available or not (hasFlash)
-> http://dev.w3.org/2009/dap/system-info/#widl-CameraAttributes-hasFlash

but no mention on how to control it if required

I found a previous discussion thread talking about making the camera flash accessible via an API on the WHATWG mailing list

If you don't mind I think it would be interesting to bring those who participated to this discussion in this W3C public mail thread

To save you painful archive navigations, I copied the related parts of the discussion

> Another question is flash. As far as I have seen, there seems to be no

> option to specify whether the camera needs to use flash or not. Is this
> decision left up to the device? (If someone is making an app which is just
> clicking a picture of the person, then it would be nice to have the camera
> use flash in low light conditions).


Shwetank Dixit proposed specific management, which makes sense to me.
Of course, it means that some developer might be inspired to use it , like
vibrations, for different purposes like gaming

> Wouldn't it make sense to have a provision for flash separately then? I
> think a lot of apps would like just a picture instead of video, and in
> those cases, flash would be required. Maybe a seperate provision in the
> spec which defines whether to use flash, and if so, for how many
> miliseconds. Is that doable?


Automatic management of the flash by the device has been mentioned as
preferred, but the main concern was about potential misuse of the flash by
the web app, ones not expected by the device owner:

> I'd expect a web app to have no idea about device camera
> specifications and thus to not be able to properly specify a flash
> duration. I don't see how such a thing is valuable.

> If a user is in a movie theater, or a museum, it's quite likely they
> won't notice a web app is forcing a flash. Let the user control flash
> through a useragent only or host application only mode. I believe the
> hazards of exposing flash duration outweigh any benefits. The only
> application class I know of built using control of camera flash is
> "flash-light", and that's both a hack and not guaranteed to be
> workable for all possible flash technologies.


To what Shwetank made a pertinent suggestion involving permission to ask to the end user

> Just like, just allowing the web app to use the camera as it is will not
> make sense, and presumably, user agents will implement a authorization by
> the user before the app gains access to the camera (something like 'This
> application requests access to the camera. Allow for now/Always
> Allow/Never Allow/Close' just like you do in geolocation right now) ...
> just like that, you could do it for flash, where the app only gains access
> to it if the user allows it. If that is the implementation, i do not think
> there would be much hazards in allowing flash access.

> Apart from helping capture images/video in low light conditions, there are
> a few other use cases for flash such as the flash light thing you
> mentioned, as well as a possible S.O.S type app.

> I'm fine if the consensus is that the device/user agent will handle the
> issue of flash by showing some sort of control where the user can click
> between 'flash on/off/auto'. That will cover *most* of the use cases,
> which is recording images/video in low light conditions. If so, then it
> might be good to specify that somewhere in the spec just to make things a
> bit clearer?


The opposition was mostly in regards to the "Always allow" permission for which
misuse risks, in my opinion, exists for any other APIs (geolocation, camera, ...)


Alexandre Morgaut
Wakanda Community Manager
Email : Alexandre.Morgaut@4d.com<mailto:Alexandre.Morgaut@4d.com>
Web :   www.4D.com<http://www.4D.com>

60, rue d'Alsace
92110 Clichy - France
Standard :      +33 1 40 87 92 00

(image/png attachment: f6f73d.png)

Received on Thursday, 30 May 2013 12:48:48 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:32:54 UTC