我試圖編寫一個腳本來檢測用戶何時允許/拒絕使用麥克風,使用getUserMedia API。getUserMedia不會觸發錯誤回調,當您在Firefox中選擇「現在不」時
編輯:我做了一個小提琴向您展示問題:http://jsfiddle.net/4rgRY/
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true, video: false}, function(stream) {
console.log('Yayy!');
}, function(err){
console.log("There was an error->: ",err);
});
} else {
console.log('getUserMedia not supported');
}
它工作正常,在Chrome,但,當我試圖在Firefox(27和Firefox每晚30A1),並且您選擇'現在不是',它不會觸發任何回調,無論是成功還是錯誤回調。所以我的應用程序認爲這是允許的,但不能正常工作。
如果您在Firefox中選擇任何其他選項(如「始終分享」,「從不分享」或「不分享」),則工作正常,只需使用「現在不是」選項。
可能是一個Firefox的錯誤?或者是我的代碼有問題?
我在想,那麼有沒有什麼辦法可以檢測用戶是否回答了瀏覽器的彈出窗口?或者像getUserMedia isset一樣? – victorgb6
回答什麼意思? 「不是現在」是用戶明確地決定不回答。 –
基本上來檢測用戶是否有答案,因爲事實上,如果用戶選擇「現在不」,瀏覽器的行爲與用戶拒絕時非常相似。所以如果有辦法檢測這種情況會很好。 – victorgb6