## web端录屏实现方案
---
##### 需产出视频文件,无论那种方案都至少要拿到媒体流,媒体流主要分两个来源:
1.当前网页上的媒体,包括通过canvas(画板)元素导出视频流 但无音频;
2.申请用户的录像录音权限,通过navigator.mediaDevices.getUserMedia() (获取桌面录制的权限申请) 可以取得用户的桌面录像权限,录制桌面可以同时申请录音权限,拿到媒体流有音频;
---
但都有各自的优点和局限性,总结如下:
### 1.通过canvas导出媒体流的方式
##### 性能比调用录像权限的性能好很多,但需要实现音频和视频的二次合成,因为canvas导出流无法录音;
==!需要java配合实现音视频合成,浏览器无法实现==
### 2.通过调用用户录像权限录屏幕即老版本实现方案,
但是存在两个严重问题
==1.兼容性很差==
==2.性能问题很严重,但是还不能确定是底层api的问题还是我们实现业务时候的代码问题==
### 3.调用第三方外挂的录屏程序