When changing the audio input device, changes do not take effect. For example, if the initial device is the built-in microphone, after changing the input to an external USB Logitech HD Pro Webcam C920, the audio is still captured from the built-in microphone.
This is observed in BlueJeans, appear.in, and also the WebRTC sample code for device selection:
This was observed in the following Safari versions:
Safari 11 for macOS Sierra beta 6, Version 11.0 (12604.1.38.1.6)
Safari Technology Preview Release 38 (Safari 11.1, WebKit 12605.1.3.1)
Confirming this is still an issue with latest Safari release (Version 11.0.1 (12604.3.5.1.1))
Confirming this is still an issue with latest Safari release Version 11.0.3 (12604.5.6.1.1)
Still seems to be an issue in release 50 (11.2)
JSFiddles reproducing this issue (both require two available input devices to run):
https://jsfiddle.net/4xnr6svv/46/ - Two streams with different device IDs open simultaneously
https://jsfiddle.net/0kxwm0e9/6/ - Two devices, alternating closing / getting new stream every 4 seconds.
In both cases, the audio tracks returned by getUserMedia has the audio from the system's default device.
Created attachment 335444 [details]
Created attachment 335446 [details]
Comment on attachment 335446 [details]
Clearing flags on attachment: 335446
Committed r229479: <https://trac.webkit.org/changeset/229479>
All reviewed patches have been landed. Closing bug.