Javascript 如何在浏览器中拍摄照片并使用http协议上载?
我想从相机中捕获一张照片并将其上传到服务器。我的目标环境是用于Hololens和PC浏览器的边缘浏览器(至少是最新版本的Chrome或Firefox) 我尝试过使用HTML5Javascript 如何在浏览器中拍摄照片并使用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 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,它是不起作用的,因为我已经提到了被认为是“安全来源”的东西。我想问的是另一种拍照方式。