-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
94 lines (92 loc) · 2.47 KB
/
script.js
File metadata and controls
94 lines (92 loc) · 2.47 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
let video=document.querySelector("video");
let recordBtnCont=document.querySelector(".record-btn-container");
let captureBtnCont=document.querySelector(".capture-btn-container");
let recordBtn=document.querySelector(".record-btn");
let captureBtn=document.querySelector(".capture-btn");
let recordFlag=false;
let chunks=[];
let recorder;
let constraints={
video:true,
audio:true
}
navigator.mediaDevices.getUserMedia(constraints)
.then((stream)=>
{
video.srcObject =stream;
recorder=new MediaRecorder(stream);
recorder.addEventListener("start",(e)=>
{
chunks=[];
})
recorder.addEventListener("dataavailable",(e)=>
{
chunks.push(e.data);
})
recorder.addEventListener("stop",(e)=>
{
let blob=new Blob(chunks,{ type: "video/mp4" });
let videoURL=URL.createObjectURL(blob);
let a=document.createElement("a");
a.href=videoURL;
a.download="stream.mp4"
a.click();
})
})
recordBtnCont.addEventListener("click", (e)=>{
if(!recorder) return;
recordFlag=!recordFlag;
if(recordFlag)
{
recorder.start();
recordBtn.classList.add("scale-record")
startTimer();
}
else
{
recorder.stop();
recordBtn.classList.remove("scale-record")
stopTimer();
}
})
captureBtnCont.addEventListener("click",(e)=>
{
let canvas= document.createElement("canvas");
canvas.width=video.videoWidth;
canvas.height=video.videoHeight;
let tool=canvas.getContext("2d");
tool.drawImage(video,0,0,canvas.width,canvas.height);
let imageURL=canvas.toDataURL();
let a=document.createElement("a");
a.href=imageURL;
a.download="image.jpg"
a.click();
captureBtn.classList.add("scale-capture");
})
let timerID;
let timer=document.querySelector(".timer");
let counter=0;
function startTimer()
{
timer.style.display = "block";
function displayTimer()
{
let hour=Number.parseInt(counter/3600);
let totalSeconds=counter%3600;
let min=Number.parseInt(totalSeconds/60);
totalSeconds=counter%60;
let seconds=totalSeconds;
if(hour<10) hour=`0${hour}`;
if(min<10) min=`0${min}`;
if(seconds<10) seconds=`0${seconds}`;
timer.innerText=`${hour}:${min}:${seconds}`
counter++;
}
timerID=setInterval(displayTimer,1000);
}
function stopTimer()
{
clearInterval(timerID);
timer.innerText = "00:00:00";
timer.style.display = "none";
}