2016-03-07 77 views
3


我试图抓住屏幕并将其显示在浏览器中(Mozilla Firefox)。为此,我使用WebRTC和Web服务器。 HTML和JS在这里:
即使使用HTTPS,WebRTC屏幕截图仍然不安全

$(document).ready(function() { 

    screen_constraints = { 
     video: { 
      mediaSource: "screen" 
     } 
    }; 

    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || window.navigator.mozGetUserMedia || navigator.msGetUserMedia; 
    window.URL = window.URL || window.webkitURL; 
    navigator.getUserMedia(screen_constraints, onstream, onerror); 

    function onstream(stream) { 

     var video = document.querySelector('video'); 
     video.src = window.URL.createObjectURL(stream); 
     video.play(); 
    } 

    function onerror(e) { 

     console.error(e); 
    } 
}); 
<!DOCTYPE html> 
<head> 
<script type="text/javascript" src="jquery-2.1.4.js"></script> 
<script type="text/javascript" src="scripts.js"></script> 
</head> 
<body> 

     <video autoplay></video> 

</body> 
</html> 

但这段代码执行中发生错误和控制台后表示:

MediaStreamError { name: "SecurityError", message: "The operation is insecure.", constraint: "", stack: "" } 

控制台还显示错误前的警告:"This site uses the SHA-1 certificate; it is recommended to use certificates with the signature algorithms that use stronger hash than SHA-1."。 我使用HTTPS,我已经将我的网站,我的浏览器的例外列表中,并允许所有权限,但不断出现此错误:(
请帮我解决这个问题!

+0

什么版本的Firefox?另外,请注意'* .domain.com'和'domain.com'是不同的。 – jib

+0

@jib firefox的版本是44.0.2。链接如下所示:https://示例:444(使用https开头) – Aeon

回答

1

也许这是因为相同的起源问题。请确保该标志在about:config正确设置,

  • 确保media.getusermedia.screensharing.enabled设置为true

  • media.getusermedia.screensharing.allowed_domains列表中包含您的域名(包括www.,如果是在你的证书中),

  • This site uses the SHA-1 certificate;...警告,你可以忽略它,它不影响屏幕共享。

+1

感谢您的回复!你做了我的一天) 原因是'media.getusermedia.screensharing.allowed_domains'属性,因为没有关于我的网站的适当记录。奇怪的是,我从cert文件中为它添加了异常,但无论如何,现在都完美无缺了!谢谢) – Aeon