This is needed because `require()` means something different in webpack - it ends up importing the module as something we didn't expect (and is occasionally async)
instead, retry with just audio.
Also when mounted, check if the user has given enough permissions
to return non-empty labels for the devices, something both ff & chrome
do if you haven't going through the permissions popup yet. If not,
show the permissions button.