Javascript 如何在浏览器中拍摄照片并使用http协议上载?

Javascript 如何在浏览器中拍摄照片并使用http协议上载?,javascript,photo,capture,hololens,pc,Javascript,Photo,Capture,Hololens,Pc,我想从相机中捕获一张照片并将其上传到服务器。我的目标环境是用于Hololens和PC浏览器的边缘浏览器(至少是最新版本的Chrome或Firefox) 我尝试过使用HTML5,但是在Hololens Edge和PC Chrome中,捕获属性都被忽略了(这在Chrome for Android中应该起作用) 我尝试了getUserMedia navigator.getUserMedia = navigator.getUserMedia || nav

我想从相机中捕获一张照片并将其上传到服务器。我的目标环境是用于Hololens和PC浏览器的边缘浏览器(至少是最新版本的Chrome或Firefox)

我尝试过使用HTML5
,但是在Hololens Edge和PC Chrome中,捕获属性都被忽略了(这在Chrome for Android中应该起作用)

我尝试了
getUserMedia

navigator.getUserMedia = navigator.getUserMedia ||
                         navigator.webkitGetUserMedia ||
                         navigator.mozGetUserMedia;

if (navigator.getUserMedia) {
   navigator.getUserMedia({ audio: true, video: { width: 1280, height: 720 } },
      function(stream) {
         var video = document.querySelector('video');
         video.srcObject = stream;
         video.onloadedmetadata = function(e) {
           video.play();
         };
      },
      function(err) {
         console.log("The following error occurred: " + err.name);
      }
   );
} else {
   console.log("getUserMedia not supported");
}
然后:从视频播放中获取图片

但是
getUserMedia
是一个强大的功能,我需要安全的来源。它使用
localhost
播放,但在我使用
localIP
时不会播放。 据

“安全源”是指至少符合以下条件之一的源 (方案、主机、端口)模式:

(https,*,*)

(wss,*,*)

(*,localhost,*)

(*,127/8,*)

(*,::1/128,*)

(文件,*,-)

(镀铬扩展,*,-)

如何解决此问题?

使用“”(谷歌搜索链接)设置本地主机,这样您就有了https服务器

这对于您的测试环境来说是可以的,但对于生产环境来说当然不行


因此,如果设置好并起作用,要拍摄照片,您需要将视频绘制到
画布上
,以便获得所需的图像

我想在生产中使用http,因为视频确实在本地主机上播放。没错。它与
localhost
一起工作,并且仅用于测试。但是如果您使用本地ip打开浏览器(无论是什么,例如
http://192.168.2.17
)它将不会运行。正如您在帖子中所写的那样,
getUserMedia
需要https。除此之外,在2018年,一切都应该在一个安全的环境中运行。这不是我所要求的。我知道如果我使用我的ip,它是不起作用的,因为我已经提到了被认为是“安全来源”的东西。我想问的是另一种拍照方式。