Spaces:
Runtime error
Runtime error
// establishing connection between client and server by getting the url. | |
var socket = io.connect(window.location.protocol + '//' + document.domain + ':' + location.port, { | |
transports: ['websocket'] | |
}); | |
// once connected sending out printing out connected | |
socket.on('connect', function () { | |
console.log("Connected...!", socket.connected) | |
}); | |
// print results | |
var result = document.getElementById('name') | |
var score = document.getElementById('score') | |
socket.on('result',(data) =>{ | |
//console.log(data); | |
result.innerHTML = data['name'] | |
score.innerHTML = data['score'] | |
}); | |
// global varibales for video and output. | |
var video = document.getElementById('videoElement'); | |
var canvas = document.getElementById('canvas'); | |
var context = canvas.getContext('2d'); | |
var send_data; | |
// set video dimentions. | |
video.width = 400; | |
video.height = 300; | |
// rate of sending image | |
const FPS = 10; | |
// function for sending the webcam input | |
function send() { | |
width = video.width; | |
height = video.height; | |
context.drawImage(video, 0, 0, width, height); | |
var data = canvas.toDataURL('image/jpeg', 0.5); | |
context.clearRect(0, 0, width, height); | |
socket.emit('image', data); | |
}; | |
// funtion to start webcam on client side | |
function start_camera() { | |
send_data = setInterval(send, 1000 / FPS) | |
let devices = navigator.mediaDevices | |
if (!devices || !devices.getUserMedia) { | |
console.log("getUserMedia() not supported."); | |
return; | |
} | |
devices.getUserMedia({ | |
video: true | |
}) | |
.then(function (vidstream) { | |
if ("srcObject" in video) { | |
video.srcObject = vidstream; | |
} else { | |
video.src = window.src = window.URL.createObjectURL(vidstream); | |
} | |
video.onloadeddata = function (e) { | |
video.play(); | |
}; | |
}) | |
.catch(function (e) { | |
console.log(e.name + ": " + e.massage); | |
}); | |
}; | |
// stopping camera input and sending data. | |
function stop_camera() { | |
video.srcObject.getTracks()[0].stop(); | |
video.srcObject = null; | |
clearInterval(send_data); | |
}; | |