20 行 JS 代码实现屏幕录制
在开发中可能有遇到过屏幕录制的需求,无论是教学、演示还是游戏录制,都需要通过屏幕录制来记录和分享内容。一般在 App 内 H5 页基于客户端能力实现的较多,现在浏览器中的 MediaRecorder
也提供了这种能力。MediaRecorder
是一种强大的技术,可以在浏览器端实现屏幕录制功能。本文将介绍如何使用 JS MediaRecorder
实现屏幕录制。
代码实现
要实现屏幕录制,我们需要通过 navigator.mediaDevices.getDisplayMedia()
方法获取屏幕媒体流,这个方法会弹出一个选择窗口,让用户选择要录制的屏幕或窗口。但出于安全原因,发起录制时必须确保用户手势触发捕获,例如点击按钮:
点击后,获取视频流并录制,获取到媒体流后,我们可以将其传给 MediaRecorder
对象后开始屏幕录制。
当用户停止共享屏幕时停止录制,调用 recoder.stop()
即可停止录制。
监听recoder
的dataavailable
事件获取录制文件并通过URL.createObjectURL()
方法将其转换为可下载的 URL,供用户下载录制的视频文件。
这样一个简单的屏幕记录器就完成了,不到 20 行代码就实现了整个屏幕录制的核心功能。完整代码如下:
浏览器兼容
目前的浏览器支持情况,对于较低的版本需要升级才能使用。
实现这么强大的功能只需要这么少的代码确实是很不错的感觉,但是这只是一个简单的录制功能,实际开发中要考虑的因素相对会比较多,由于屏幕录制可能消耗较多的资源,因此在长时间录制时,我们应该提示用户录制时间或大小的限制,并提供相应的操作和反馈。
使用 MediaRecorder
我们可以方便地实现屏幕录制功能。这种功能在教学、演示等场景下非常有用,同时也为开发者提供了更多创造性的可能性。有兴趣的可以体验使用看看效果,在实际使用中也要合理使用此功能,确保用户隐私和数据安全。
参考
https://dev.to/ninofiliu/simple-screen-recorder-in-20-lines-of-javascript-4ina
看完本文如果觉得有用,记得点个赞支持,收藏起来说不定哪天就用上啦~
专注前端开发,分享前端相关技术干货,公众号:南城大前端(ID: nanchengfe)
版权声明: 本文为 InfoQ 作者【南城FE】的原创文章。
原文链接:【http://xie.infoq.cn/article/7fe9938a6d9bb3336b3812686】。文章转载请联系作者。
评论