首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >20 行 JavaScript 的简单屏幕录像机

20 行 JavaScript 的简单屏幕录像机

原创
作者头像
泽霖
发布2023-11-13 22:23:40
发布2023-11-13 22:23:40
4210
举报
文章被收录于专栏:分享技术分享技术

假设您厌倦了屏幕录像机的付费专区和限制,并想继续编写自己的代码 - 事实证明您已经可以通过几行代码获得基本功能。

代码语言:txt
复制
const button = document.createElement("button");
button.innerHTML = "capture";
document.body.append(button);
button.addEventListener("click", async () => {
  // TODO
});

单击后,获取视频流并进行录制

代码语言:txt
复制
const stream = await navigator.mediaDevices.getDisplayMedia();
const recoder = new MediaRecorder(stream);
recoder.start();

当用户停止共享屏幕时停止录制

代码语言:txt
复制
const [video] = stream.getVideoTracks();
video.addEventListener("ended", () => {
  recoder.stop();
});

获取录音文件并下载

代码语言:txt
复制
recoder.addEventListener("dataavailable", (evt) => {
  const a = document.createElement("a");
  a.href = URL.createObjectURL(evt.data);
  a.download = "capture.webm";
  a.click();
});

现在, 你就有了一个简单的屏幕录像机!

它有很多解决起来很有趣的限制 - 音频录制、网络摄像头集成、长时间运行的流等 - 但我刚刚发现原来用这么少的代码就就可以完成如此强大的事情,

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档