-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathRecord.html
58 lines (44 loc) · 1.13 KB
/
Record.html
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
<!DOCTYPE html>
<html>
<head>
<title>视频录制</title>
<meta charset="UTF-8">
</head>
<body>
<video class="video" width="600px" controls=""></video>
<button class="record-btn">record</button>
<script>
let btn = document.querySelector(".record-btn");
btn.addEventListener("click", async function () {
let stream = await navigator.mediaDevices.getDisplayMedia({
video: true
});
// 需要更好的浏览器支持
const mime = MediaRecorder.isTypeSupported("video/webm; codecs=vp9")
? "video/webm; codecs=vp9"
: "video/webm";
let mediaRecorder = new MediaRecorder(stream, {
mimeType: mime
});
let chunks = [];
mediaRecorder.addEventListener('dataavailable', function (e) {
chunks.push(e.data)
});
mediaRecorder.addEventListener('stop', function () {
let blob = new Blob(chunks, {
type: chunks[0].type
});
let url = URL.createObjectURL(blob);
let video = document.querySelector("video");
video.src = url;
let a = document.createElement('a');
a.href = url;
a.download = 'video.webm';
a.click()
});
// 必须手动启动
mediaRecorder.start()
})
</script>
</body>
</html>