html5 - 新版chrome不能访问摄像头
迷茫
迷茫 2017-04-17 12:03:07
0
5
1199
<html>
<body>
<video id="video" autoplay=""style='width:640px;height:480px'></video>
<button id='picture'>PICTURE</button> 
<canvas id="canvas" width="640" height="480"></canvas>

  <script>

var video=document.getElementById("video");
var context=canvas.getContext("2d");
var errocb=function(){
 console.log("wrong");
}
if (navigator.getUserMedia) { // 标准的API
                navigator.getUserMedia({ "video": true }, function (stream) {
                    video.src = stream;
                    video.play();
                }, errocb);
} else if (navigator.webkitGetUserMedia) { // WebKit 核心的API
                navigator.webkitGetUserMedia({ "video": true }, function (stream) {
                    video.src = window.webkitURL.createObjectURL(stream);
                    video.play();
                }, errocb);
 }
</script>
</body>
</html>

以上代码在新版chrome(47.0.2526.80)可以通过本地地址访问摄像头,比如localhost/video.html。
但是不能通过IP地址访问,比如192.168.1.100/video.html。
而其它低版本的chrome工作都是正常的。
请问 这个问题如何解决呢?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(5)
大家讲道理

https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins

いいねを押す +0
刘奇

我也遇到同样的问题,以前版本的Chrome默认是会弹出提示的,这个版本直接拒绝打开摄像头了。虽然我在隐私设置里打开了摄像头,但是没有提示。

难道这是为了安全考虑,必须走HTTPS?

いいねを押す +0
小葫芦

昨天遇到这个问题,在网上找了许多资料,发现是chrome设置的问题,打开设置-高级设置-隐私设置(chrome://settings/content直达)找到摄像头,讲默认选项的mobiola video..选择你的设备(下拉框选择)就可以啦,吼吼

いいねを押す +0
刘奇

我也遇到了这个问题,现在谷歌连getUserMedia都不支持了,必须要https?

いいねを押す +0
Peter_Zhu

貌似是Chrome为了安全而添加的功能,采用https连接就可以访问到摄像头

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート