百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

用JS实现简单的屏幕录像机 用js实现简单的屏幕录像机

liuian 2024-12-30 05:15 62 浏览

作者:京东保险 张洁

本文将介绍如何用JS实现简单的屏幕录像机。

一、录制准备

创建一个按钮

<button id="recording-toggle">Start recording</button>

书写JavaScript

var RECORDING_ONGOING = false;
var recordingToggle = document.getElementById("recording-toggle"); // 按钮

recordingToggle.addEventListener("click", function(){
     RECORDING_ONGOING = !RECORDING_ONGOING; // 开始 / 停止 录制
     if(RECORDING_ONGOING){
         recordingToggle.innerHTML = "Stop Recording";
         startRecording(); // 开始录制
     } else {
         recordingToggle.innerHTML = "Start Recording";
         stopRecording(); // 停止录制
 }
});

看起来内容很多,但实际上,只是向按钮添加一个事件侦听器来开始和停止记录并相应地更改文本。

二、开始录制

在写功能函数之前,声明 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. 这是你想要的输出文件类型。

可以mimeTypes 在此处阅读更多相关信息。

Edge 支持video/webmmime 类型。这是文件扩展名.webm。可以通过以下方式检查浏览器是否支持mimeType:

console.log(MediaRecorder.isTypeSupported("video/webm"))
console.log(MediaRecorder.isTypeSupported("video/mp4"))
console.log(MediaRecorder.isTypeSupported("video/mp4;codecs=avc1"))

向该函数添加几行startRecording

 deviceRecorder.ondataavailable = (e) => {
     if(e.data.size > 0){
         chunks.push(e.data);
     }
 }
 deviceRecorder.onstop = () => {
     chunks = [];
 }
 deviceRecorder.start(250)

每当有数据时,都会将其添加到块数组(之前定义)中。当停止录制时,将调用该stopRecording() 函数。

三、停止录制

function stopRecording(){
     var filename = window.prompt("File name", "video"); // Ask the file name

     deviceRecorder.stop(); // 停止录制
     blob = new Blob(chunks, {type: "video/webm"})
     chunks = [] // 重置数据块
     var dataDownloadUrl = URL.createObjectURL(blob);

     // 将其下载到用户的设备上
     let a = document.createElement('a')
     a.href = dataDownloadUrl;
     a.download = `${filename}.webm`
     a.click()
 
     URL.revokeObjectURL(dataDownloadUrl)
}

用JS做录屏就是这么简单。如果你想要 mp4 或其他格式,则必须使用 API 进行转换或自己进行转换。


?浏览器会通知是否正在共享屏幕

相关推荐

系统一键重装官网(正版一键重装系统)
  • 系统一键重装官网(正版一键重装系统)
  • 系统一键重装官网(正版一键重装系统)
  • 系统一键重装官网(正版一键重装系统)
  • 系统一键重装官网(正版一键重装系统)
联想笔记本电脑哪款好用又便宜

联想笔记本电脑中便宜的型号非常多,其中包括IdeaPad314、IdeapadS145、ThinkPadE14等等。这些笔记本电脑都有不错的性能和基础配置,而且价格相对于其他品牌的同类产品更加...

win7 网卡驱动(win7网卡驱动代码31)

以下是安装Win7网卡驱动的步骤:1.打开设备管理器。方法是按下Win+R快捷键,输入“devmgmt.msc”命令并点击“确定”按钮。2.展开“网络适配器”选项,找到你要安装驱动的网卡型号。3....

windows资源管理器已停止工作弹窗

解决方法如下:1、首先使用键盘组合快捷键“Ctrl+Alt+Del(.)”打开任务管理器;2、打开后查看进程中是否含有“explorer.exe”项,若没有单击左上角“文件”选项,单击“新建任务”;3...

怎么设置从u盘启动系统(设置从u盘启动盘步骤)

1、插上U盘,启动电脑,按照说明书上的步骤进入bios选项。一般是开机时按住F2/F12/del/home/等按键。2、选择到boot自选项,几乎所有的主板都是在这里配置启动顺序的。利用键盘上的上下...

u启动和u深度哪个好(u深度启动u盘安装win7系统教程)

关于这个问题,是的,"u深度"和"u启动"是两个不同的概念。"u深度"通常指的是深度神经网络(DeepNeuralNetwork,DNN)的层数或...

amd历代cpu型号大全(amdcpu历史)

 AMDCPU型号。速龙,迅龙,r5,r7.型号不同价格,有比较大的区分,比如r5,5600,r55600X.r75700,5800,r715700X5800x.无论是核心个数还有核心...

oracle认证(oracle认证等级划分)

Oracle认证分为OCA,OCP,OCM。OCA:报考OCA的基础条件是报考OCA不限制考生的文凭,任何人都可以报考并获得此证书;对OCA有一定的了解。。其证书拥有者在全球各地将享有OCA相关专业免...

惠普打印机官网怎么下载驱动

HP惠普打印机驱动官网是存在的。因为HP惠普是一家著名的电脑及相关产品制造商,他们会提供各种驱动程序和软件以保证设备的兼容性和稳定性。HP惠普打印机驱动官网可以通过搜索引擎查找,也可以通过HP惠普的官...

win7怎么启用系统还原(win7系统还原功能怎么开启)

在Windows7中,您可以按照以下步骤启用或关闭系统还原:1.单击开始菜单,右键单击“计算机”(或“我的电脑”),然后选择“属性”。2.单击“系统保护”链接,然后在弹出的“系统属性”对话框...

wpsoffice(wpsoffice功能栏全是灰色的怎么恢复)

wpsoffice是金山公司开发的一款国产办公软件,有WPS文字、WPS表格和WPS演示三个板块。其作用就是办公应用。1、WPSOFFICE:WPSOffice是由金山软件股份有限公司自主研发的一...

如何清理c盘中不必要的文件(如何清理c盘中不必要的文件夹)
  • 如何清理c盘中不必要的文件(如何清理c盘中不必要的文件夹)
  • 如何清理c盘中不必要的文件(如何清理c盘中不必要的文件夹)
  • 如何清理c盘中不必要的文件(如何清理c盘中不必要的文件夹)
  • 如何清理c盘中不必要的文件(如何清理c盘中不必要的文件夹)
更新win10版本(win10 系统更新)

一、升级windows10版本后再安装PR20191.1、将你电脑目前的操作系统windows10版本成功升级到1703或更高的版本win10pr。1.2、成功升级windows1...

oppo主题下载(OPPO主题下载12.4.0)

在oppo手机上下载会员主题的方法如下首先打开oppo手机,在手机页面上找到主题商店的图标,进入主题商店的页面点击右下角的个人中心,然后我们点击充值会员,充完会员之后,在进入到主题页面,找到会员主...

小米系统桌面(小米系统桌面耗电量大怎么办)
小米系统桌面(小米系统桌面耗电量大怎么办)

小米手机可以不借助三方应用程序更改桌面,方法如下:点开手机首页进入“系统设置”系统。选择应用。选择“默认应用设置”。选择“桌面”,选择我们想要设置的桌面即可。最后回到主界面,点按主页键,就可以看到我们设置的桌面了。步骤/方式1在桌面上,两...

2025-12-15 23:05 liuian