File size: 2,139 Bytes
348414c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// 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);
};