本文将向您展示如何使用 JS 实现一个简单的屏幕录像机。
创建一个按钮。
start recording
编写 j**ascript
var recording_ongoing = false;var recordingtoggle = document.getelementbyid("recording-toggle");按钮录制切换addeventlistener("click", function() else })
它可能看起来内容很多,但实际上,它只是在按钮上添加一个事件侦听器来开始和停止录制并相应地更改文本。
在编写函数之前,声明 3 个全局变量(在函数外部)。
var blob, mediarecorder = null;var chunks =
现在,开始屏幕录制。
async function startrecording(),audio: true} )devicerecorder = new devicerecorder(stream, )
在用户屏幕之外创建流。 **记录器具有 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=**c1"))
向函数添加几行 startrecording
devicerecorder.ondata**ailable = (e) => devicerecorder.onstop = ()=> devicerecorder.start(250)
每当有数据时,它就会被添加到块阵列(先前定义)中。 停止录制时,将调用 stoprecording() 函数。
函数 stoprecording())chunks = 重置数据块 var datadownloadurl = urlcreateobjecturl(blob);将其带到用户的设备上,让 = 文档createelement('a') a.href = datadownloadurl; a.download = `$webm` a.click() url.revokeobjecturl(datadownloadurl)}
使用 JS 进行屏幕录制就这么简单。 如果您想要 MP4 或其他格式,则必须使用 API 进行转换或自己进行转换。
如果您的屏幕正在共享,浏览器会通知您。
作者:张杰,京东保险。*:京东云开发者社区 **请注明**。