我調整了一個庫,通過用戶的麥克風錄製MP3音頻。如果用戶允許或拒絕對麥克風的訪問請求,我很好,但我注意到,這MDN says:getUserMedia - 如果用戶別無選擇,該怎麼辦?
注意,有可能返回的承諾沒有解決 也沒有拒絕,因爲用戶不需要做出選擇。
但似乎沒有說什麼,如果有的話,我可以做到「無選擇」行動。如果用戶只是退出對話框,或者在沒有做出選擇的情況下模糊了對話框,我可以捕捉並調整我的UI嗎?
這裏是我當前的代碼:
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);
});
我想你可以使用承諾的「拒絕」方法來捕捉,如果錯誤不被拋出。 –
但是,這只是它 - 如果用戶別無選擇,承諾是*不*被拒絕。 – Utkanos
我無法想象用戶的情況在5分鐘內沒有選擇,所以如果用戶在X分鐘內沒有選擇,您可以開始超時手動拒絕。 –