Audio tracks retrieved via getUserMedia have an empty label. Run this: navigator.mediaDevices.getUserMedia({ audio: true, video: true }) .then(stream => console.log(stream.getTracks().map(track => track.label))) Expectation: ["Built-in Microphone", "FaceTime HD Camera"] Actual result: ["", "FaceTime HD Camera"] My devices all have labels. When I run this: navigator.mediaDevices.enumerateDevices() .then(devices => console.log(devices.map(device => device.label))); I get: ["Built-in Microphone", "Built-in Output", "FaceTime HD Camera"] Observed while using: macOS Sierra 10.12.6 (16G29) Release 37 (Safari 11.1, WebKit 12605.1.2) Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.2 (KHTML, like Gecko) Version/11.1 Safari/605.1.2
<rdar://problem/33992792>
This has been fixed, I see this when capturing from an external monitor: ["LG UltraFine Display Camera", "LG UltraFine Display Audio"], and this when capturing from a laptop: ["FaceTime HD Camera (Built-in)", "MacBook Pro Microphone"]