使用简单的JavaScript创建一个屏幕录屏工具
liuian 2024-12-30 05:16 18 浏览
转载说明:原创不易,未经授权,谢绝任何形式的转载
学习如何使用这个简单易用的API进行屏幕共享、屏幕录制等操作。尽管需要对JavaScript有一定的了解,但我相信你已经具备了这方面的知识。
1、开始录制
让我们创建一个按钮:
<button id="recording-toggle">Start recording</button>
JavaScript 代码
var RECORDING_ONGOING = false;
var recordingToggle = document.getElementById("recording-toggle"); // The button
recordingToggle.addEventListener("click", function(){
RECORDING_ONGOING = !RECORDING_ONGOING; // Start / Stop recording
if(RECORDING_ONGOING){
recordingToggle.innerHTML = "Stop Recording";
startRecording(); // Start the recording
} else {
recordingToggle.innerHTML = "Start Recording";
stopRecording(); // Stop screen recording
}
});
看起来这里似乎有很多内容,但实际上,我们只是在按钮上添加了一个事件监听器,以便启动和停止录制,并相应地更改文本。
编写录制核心代码
在函数之前,声明3个全局变量(在函数外部)。
var blob, mediaRecorder = null;
var chunks = [];
现在,让我们开始屏幕录制。
async function startRecording(){
var stream = await navigator.mediaDevices.getDisplayMedia(
{video: {mediaSource: "screen"}, audio: true}
);
deviceRecorder = new deviceRecorder(stream, {mimeType: "video/webm"});
}
我们从用户的屏幕创建一个媒体流。媒体记录器有一个 mimeType,它是您所希望的输出文件的类型。
您可以在这里阅读更多关于 mimeType 的信息。
Edge 浏览器支持 video/webm mimeType。该文件扩展名为 .webm。您可以使用以下方式检查浏览器是否支持某个 mimeType:
console.log(MediaRecorder.isTypeSupported("video/webm"))
console.log(MediaRecorder.isTypeSupported("video/mp4"))
console.log(MediaRecorder.isTypeSupported("video/mp4;codecs=avc1"))
在这篇文章中,我将使用 Webm,但您可以根据需要更改 mimeType。
在 startRecording 函数中添加几行代码:
deviceRecorder.ondataavailable = (e) => {
if(e.data.size > 0){
chunks.push(e.data);
}
}
deviceRecorder.onstop = () => {
chunks = [];
}
deviceRecorder.start(250)
每当我们有数据时,我们将其添加到之前定义的 chunks 数组中。当我们停止录制时,我们将调用 stopRecording() 函数。
停止录制
function stopRecording(){
var filename = window.prompt("File name", "video"); // Ask the file name
deviceRecorder.stop(); // Stopping the recording
blob = new Blob(chunks, {type: "video/webm"})
chunks = [] // Resetting the data chunks
var dataDownloadUrl = URL.createObjectURL(blob);
// Downloadin it onto the user's device
let a = document.createElement('a')
a.href = dataDownloadUrl;
a.download = `${filename}.webm`
a.click()
URL.revokeObjectURL(dataDownloadUrl)
}
这就是在 JavaScript 中进行屏幕录制的简单方法。如果您想要使用 mp4 或其他格式,您将需要使用 API 进行转换或自行处理。
结束
在本文中,我们介绍了使用 JavaScript 进行屏幕录制的简单方法。通过使用浏览器提供的媒体记录器 API,我们可以轻松地捕捉用户屏幕的内容并创建录屏文件。无论是进行教学演示、演讲稿录制还是创建应用程序演示视频,屏幕录制都是一个非常有用的工具。您可以根据需要选择不同的输出文件类型,并根据自己的需求进行扩展和定制。我希望本文对您理解和使用 JavaScript 的录屏 API 有所帮助。
谢谢您阅读本文,如果您对其他 JavaScript API 和功能感兴趣,请继续关注我的系列文章。在接下来的文章中,我将继续介绍更多有趣和实用的内容,如通知、浏览器历史记录以及音频和视频录制等。请留意我的更新,获取最新的技术资讯和教程。
希望您喜欢这篇文章,如果您有任何问题或意见,请随时与我联系。再次感谢您的阅读!
由于文章内容篇幅有限,今天的内容就分享到这里,文章结尾,我想提醒您,文章的创作不易,如果您喜欢我的分享,请别忘了点赞和转发,让更多有需要的人看到。同时,如果您想获取更多前端技术的知识,欢迎关注我,您的支持将是我分享最大的动力。我会持续输出更多内容,敬请期待。
相关推荐
- 用python操作excel、word、pdf非常容易,迅速教会你
-
你会用python操作excel、word、pdf吗?不会也没关系,这篇文章教会你~【文末领取】案例篇幅有限,给大家准备了电子版PDF获取方式:...
- 不同类型的文本、Word文档、Excel文档和图片将它们转换为PDF格式
-
要根据不同类型的文本、Word文档、Excel文档和图片将它们转换为PDF格式,你可以使用Python中的不同库来实现。下面是一个示例代码,展示了如何使用不同的库来处理不同类型的文件并将其转换为PDF...
- 10分钟实现PDF转Word神器!看DeepSeek如何用Python解放打工人
-
开篇痛点每个被PDF折磨过的职场人都懂——领导发来的扫描件要修改,手动抄到Word需要2小时;网上下载的报告想复制数据,却变成乱码…今天我们用Python+DeepSeek,10分钟打造一个智能转换工...
- 第12天 | 12天搞定Python,word和pdf
-
其实,Python除了对excel的支持很nice之外,对word、ppt和pdf也不赖的,上一篇《第12天|12天搞定Python,让excel飞起来》说了excel方面的内容,这一篇补上Py...
- 用python轻松操作excel、word、pdf吗?这篇文章教会你!拿走不谢
-
你会用python操作excel、word、pdf吗?不会也没关系,这篇文章教会你~【文末领取】案例篇幅有限,给大家准备了电子版PDF获取方式:...
- Python开发打印服务(1)
-
Python开发打印服务(1)1.需求背景在项目开发中,我们经常会遇到打印预览、打印的需求。比如:我们在开发进销存或者其他系统应用时,经常会按照客户的需求来定制报表等。在Web项目中,实现打印预览...
- 零代码编程:用ChatGPT将PDF文件的表格批量转为Excel表格
-
电脑中有几百个PDF文件,文件内容格式一致,每个PDF文件第一页是一个表格。想把这几百个PDF文件里面的表格都提取出来,转为excel表,该怎么办?打开ChatGPT(一定要用GPT4,编程能力很强。...
- 用python操作excel、word、pdf非常迅速方便,迅速教会你
-
你会用python操作excel、word、pdf吗?不会也没关系,这篇文章教会你~【文末领取】案例篇幅有限,给大家准备了电子版PDF获取方式:...
- PDF转换技巧:如何免费将 PDF 转换为 Excel
-
随着数字文档的使用不断增加,对高效和值得信赖的文档转换工具的需求也在增加。将PDF文件转换为Excel电子表格(XLS)可能具有挑战性,但这篇文章旨在缓解这些困难。这是带有分步说明的指南。...
- PDF转Excel要收费?python几行代码帮你免费搞定(附代码)
-
写在前面经常在学习或工作中需要从PDF获取一些表格数据,直接用PDF阅读器复制的话,很难复制出来,使用PDF转Excel的软件,又需要收费。这时候,可以使用我们强大的python,几行代码就能把pdf...
- python将PDF格式文档转换为excel文档
-
首先安装pdfplumber库pipinstallpdfplumberopenpyxl然后转换#导入两个模块importpdfplumberimportpandasaspd...
- 用DEEPSEEK写PDF转为Excel 程序
-
今天学校发了《2027通用版普通高校拟在山东招生专业(类)选考科目要求》(本科)文件为PDF版要转为化Excel用DEEPSEEK开发过程提问:写一个把PDF内容按着原来格式转化为EXCELL表格电脑...
- 用DeepSeek+Trae 自己写PDF表格转为EXCEL表格
-
如何将下面PDF表格转为EXCEL能更好统计在TRAE提问:新建窗口-选择文件夹-写一个PDF转excel电脑程序:样式不变,界面有选择文件,有输出文件,显示进度及页码,开始,暂停,退出,实现所...
- Python一行代码实现PDF转Excel
-
第三方包tabula工具适用于从PDF中提取可复制(非图片格式)的表格数据,并输出表格安装pipinstalltabula-py函数调用df=tabula.read_pdf("PDF文件...
- Python教程:python字典zip函数用法 - 学习如何操作字典
-
知识星球:写代码那些事如果你有收获|欢迎|点赞|关注|转发这里会定期更新|大厂的开发|架构|方案设计这里也会更新|如何摸鱼|抓虾欢迎来到写代码那些事!在Python编程中,字典(Dictionary)...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
python使用fitz模块提取pdf中的图片
-
《人人译客》如何规划你的移动电商网站(2)
-
Jupyterhub安装教程 jupyter怎么安装包
-
- 最近发表
-
- 用python操作excel、word、pdf非常容易,迅速教会你
- 不同类型的文本、Word文档、Excel文档和图片将它们转换为PDF格式
- 10分钟实现PDF转Word神器!看DeepSeek如何用Python解放打工人
- 第12天 | 12天搞定Python,word和pdf
- 用python轻松操作excel、word、pdf吗?这篇文章教会你!拿走不谢
- Python开发打印服务(1)
- 零代码编程:用ChatGPT将PDF文件的表格批量转为Excel表格
- 用python操作excel、word、pdf非常迅速方便,迅速教会你
- PDF转换技巧:如何免费将 PDF 转换为 Excel
- PDF转Excel要收费?python几行代码帮你免费搞定(附代码)
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- table.render (33)
- uniapp textarea (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- react-admin (33)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)