Joseph Scott

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.