假设您厌倦了屏幕录像机的付费专区和限制,并想继续编写自己的代码 - 事实证明您已经可以通过几行代码获得基本功能。
const button = document.createElement("button");
button.innerHTML = "capture";
document.body.append(button);
button.addEventListener("click", async () => {
// TODO
});单击后,获取视频流并进行录制
const stream = await navigator.mediaDevices.getDisplayMedia();
const recoder = new MediaRecorder(stream);
recoder.start();当用户停止共享屏幕时停止录制

const [video] = stream.getVideoTracks();
video.addEventListener("ended", () => {
recoder.stop();
});获取录音文件并下载
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 删除。