Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法读取属性';gettrack';未定义的_Javascript_Typeerror - Fatal编程技术网

Javascript 未捕获类型错误:无法读取属性';gettrack';未定义的

Javascript 未捕获类型错误:无法读取属性';gettrack';未定义的,javascript,typeerror,Javascript,Typeerror,照相机没有打开。如何解决这个问题 我试过了,但没有成功 负载凸轮 function loadCam(stream) { try { this.srcObject = stream; } catch (error) { this.src = window.URL.createObjectURL(stream); } logger("Camera loaded [OKAY]");

照相机没有打开。如何解决这个问题

我试过了,但没有成功

负载凸轮

function loadCam(stream) {
        try {
          this.srcObject = stream;
        } catch (error) {
          this.src = window.URL.createObjectURL(stream);
        }
        logger("Camera loaded [OKAY]");
        localstream = stream;
      }
停止错误

 if (--timer >= 0) {
            } else {
                clearInterval(faceStream);
                document.getElementById("face-login").style.display = 'inline-block';
                video.pause();
                video.src = "";
                localstream.getTracks()[0].stop();

                timer = duration;
                socket.emit("stream-end", '');
            }

var socket=io();
函数记录器(msg){
$(“#记录器”).text(msg);
}
函数流(){
var canv=document.getElementById(“prev”),
context=canv.getContext(“2d”),
video=document.getElementById(“视频”),
本地流,
频率=10;
canv.width=200;//window.innerWidth;//800;
canv.height=200;//window.innerHeight;//400;
context.width=canv.width;
context.height=canv.height;
函数loadCam(流){
试一试{
this.srcObject=stream;
}捕获(错误){
this.src=window.URL.createObjectURL(流);
}
记录器(“摄像机加载[正常]”;
localstream=stream;
}
函数loadFail(流){
记录器(“加载摄影机失败”);
}
功能viewVideo(视频、上下文){
context.drawImage(视频,0,0,context.width,context.height);
socket.emit(“stream”,canv.toDataURL(“image/webp”);
}
$(函数(){
navigator.getUserMedia=navigator.getUserMedia||
navigator.webkitGetUserMedia||
navigator.mozGetUserMedia;
if(navigator.getUserMedia){
getUserMedia({video:true},loadCam,loadFail);
}
风险值持续时间=60*0.2//
var定时器=持续时间,分钟,秒;
var faceStream=setInterval(函数(){
viewVideo(视频、上下文);
分钟=parseInt(计时器/60,10)
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
如果(--计时器>=0){
}否则{
clearInterval(faceStream);
document.getElementById(“face login”).style.display='inline block';
video.pause();
video.src=“”;
localstream.getTracks()[0].stop();
定时器=持续时间;
socket.emit(“流结束”,“流结束”);
}
记录器(“识别时间:“+分钟+”:“+秒”);
},频率*10);
});
}
函数视图(){
document.getElementById(“face login”).style.display='none';
流();
socket.on(“流”,函数(数据){
var img=document.getElementById(“img”);
img.style.display='block';
img.src=数据['img'];
var devRect=document.getElementById(“面部检测”);
var rect=data['rectFace'];
if(Object.keys(rect).length!==0){
devRect.style.display='block';
devRect.style.top=rect.y+'px';
devRect.style.left=rect.x+'px';
devRect.style.width=rect.w+'px';
devRect.style.height=rect.h+'px';
}否则{
devRect.style.display='none';
}
});
socket.on(“流结束”,函数(数据){
$(“#面部登录”).hide();
$(“#人脸检测”).hide();
记录器(“验证用户…”);
socket.emit(“验证用户”和“”);
});
socket.on(“验证用户”,函数(数据){
$(“#人脸检测”).hide();
记录器(“已验证,+数据['name']+”,舒适性:“+数据['acouracy']);
console.log(数据)
如果(数据['id']){
$(“#面部登录”).hide();
$.post(“/login”,{'auth_key':数据['auth_key']},函数(数据){
location.reload();
})
}否则{
$(“#面部登录”).show();
}
});
}

错误消息是否不清楚?您应该在此处添加更多代码,因为根据显示的内容,不清楚发生了什么。唯一可以确定的是没有调用localstream=stream,或者stream未定义。因此,
localstream
未定义。无法用提供的代码回答为什么。代码还不够?
<script>
    var socket = io();
    function logger(msg) {
      $("#logger").text(msg);
    }

    function stream() {
      var canv = document.getElementById("prev"),
      context = canv.getContext("2d"),
      video = document.getElementById("video"),
      localstream,
      freq = 10;

      canv.width = 200;//window.innerWidth ;//  800;
      canv.height = 200;//window.innerHeight;// 400;

      context.width = canv.width;
      context.height = canv.height;

      function loadCam(stream) {
        try {
          this.srcObject = stream;
        } catch (error) {
          this.src = window.URL.createObjectURL(stream);
        }
        logger("Camera loaded [OKAY]");
        localstream = stream;
      }

      function loadFail(stream) {
        logger("Failed loading camera");
      }

      function viewVideo(video, context) {
        context.drawImage(video, 0, 0, context.width, context.height);
        socket.emit("stream", canv.toDataURL("image/webp"));
      }

      $(function() {
        navigator.getUserMedia = navigator.getUserMedia ||
                           navigator.webkitGetUserMedia ||
                           navigator.mozGetUserMedia;

        if(navigator.getUserMedia) {
          navigator.getUserMedia({video: true}, loadCam, loadFail);
        }

        var duration = 60 * 0.2;//
        var timer = duration, minutes, seconds;

        var faceStream = setInterval(function() {
          viewVideo(video, context);

          minutes = parseInt(timer / 60, 10)
          seconds = parseInt(timer % 60, 10);

          minutes = minutes < 10 ? "0" + minutes : minutes;
          seconds = seconds < 10 ? "0" + seconds : seconds;
            if (--timer >= 0) {
            } else {
                clearInterval(faceStream);
                document.getElementById("face-login").style.display = 'inline-block';
                video.pause();
                video.src = "";
                localstream.getTracks()[0].stop();
                timer = duration;
                socket.emit("stream-end", '');
            }
            logger("Recognizing in: " + minutes + ":" + seconds);
        }, freq*10);
      });
    }

    function view() {
      document.getElementById("face-login").style.display = 'none';

      stream();


      socket.on("stream", function (data) {
        var img = document.getElementById("img");
        img.style.display = 'block';
        img.src = data['img'];


        var devRect = document.getElementById("face-detect");
        var rect = data['rectFace'];
        if(Object.keys(rect).length !== 0) {
          devRect.style.display = 'block';
          devRect.style.top = rect.y + 'px';
          devRect.style.left = rect.x + 'px';
          devRect.style.width = rect.w + 'px';
          devRect.style.height = rect.h + 'px';

        } else {
          devRect.style.display = 'none';

        }
      });

      socket.on("stream-end", function (data) {
        $("#face-login").hide();
        $("#face-detect").hide();
        logger("Verifying user...");
        socket.emit("verify-user", '');
      });

      socket.on("verify-user", function (data) {
        $("#face-detect").hide();
        logger("verified, " + data['name'] + ", accouracy: " + data['accouracy']);
        console.log(data)
        if(data['id']) {
          $("#face-login").hide();
          $.post("/login", {'auth_key': data['auth_key']}, function(data) {
            location.reload();
          })
        } else {
          $("#face-login").show();
        }
      });
    }

  </script>