Chrome 47 has support for mediaDevices.enumerateDevices()
:
Modern browsers make it possible to select input and output devices including cameras, microphones and speakers.
For example:
– On a phone, select the front or rear-facing camera.
– On a laptop, choose the internal speakers or a speaker connected by Bluetooth.
– For a video chat, choose internal or external microphone or camera.
This has been available in Firefox since version 39 and is part of the W3C “Media Capture and Streams” draft.
I can see this getting lots of play in the “native vs. web” arguments.