2017-01-10 23 views
1

我試圖運行此腳本來檢測Ubuntu 16.04上Mozilla Firefox v50.1.0中的音頻設備。 [1]WebRTC:Firefox未檢測到任何輸出設備

navigator.mediaDevices.enumerateDevices() 
.then(function(devices) { 
    devices.forEach(function(device) { 
    console.log(device.kind + ": " + device.label + 
       " id = " + device.deviceId); 
    }); 
}) 
.catch(function(err) { 
    console.log(err.name + ": " + err.message); 
}); 

它只檢測輸入設備,但沒有輸出。適用於Chrome和Opera,但不適用於Firefox。

順便說一句,我需要手動添加我的網頁的域名到media.getusermedia.screensharing.allowed_domains在Firefox的about:config來獲得彈出窗口提示允許共享我的設備。爲什麼這是必要的?

回答

2

Enumerationselection輸出設備尚未在Firefox中實現。

還有在Firefox中共享攝像頭的域名白名單要求&麥克風。從來不是。一旦實施後,也不會有輸出設備。

您提到的域名白名單僅限於屏幕共享,共享桌面。即使這一要求已從Firefox 52(當前爲Firefox Developer Edition)刪除,其中它已被替換爲a warning

屏幕共享設備,因此enumerateDevices列舉,所以也許不是你所追求的,但無論如何,我會涵蓋的原因:

的原因在於白名單(現在的警告)是固有的安全風險特別是在網絡上共享瀏覽器窗口。簡而言之,這樣的共享使得網站能夠看到它從其他域名召集的網站的像素,並圍繞跨域保護展開最終運行。惡意網站可能會利用此漏洞從您登錄的其他網站彈出您的私人信息,並以您的身份進行有效瀏覽並捕獲結果,竊取您的私人數據。

你可以在my blog瞭解更多。

+1

謝謝你的回答 – user3618276