Я адаптировал библиотеку для записи аудио MP3 через микрофон пользователя. Если пользователь разрешает или отклоняет запрос на доступ к микрофону, я в порядке, но я отмечаю, что MDN says это:getUserMedia - что делать, если пользователь не делает другого выбора?
Обратите внимание, что возможно для возвращенного обещания ни разрешить ни отвергнуть, так как пользователь не требуется сделать выбор.
Но, похоже, я не могу сказать, что, если что-нибудь, я могу поймать действие «без выбора». Если пользователь просто покидает диалоговое окно или вымывается из него без выбора, могу ли я его поймать и соответствующим образом настроить свой интерфейс?
Вот мой текущий код:
navigator.mediaDevices.getUserMedia({audio: true}).then(function(stream) {
build_ui();
startUserMedia(stream);
}).catch(function(e) { //<-- doesn't fire if no choice made
cfg.no_device_callback && cfg.no_device_callback(e);
});
Я думаю, вы можете использовать метод 'reject' для обещания поймать это, если ошибка не выбрасывается. –
Но это просто - обещание * не * отклонено, если пользователь не делает другого выбора. – Utkanos
Я не могу представить, что случай у пользователя не делает выбор за 5 минут, поэтому вы можете запустить таймаут, чтобы отклонить вручную, если пользователь не делает выбор в течение X минут. –