chrome浏览器如何录屏

API理解

MediaDevices.getDisplayMedia():提示用户去选择和授权捕获展示的内容或部分内容,返回一个 promise 对象,成功后会resolve回调一个 MediaStream 对象。

语法

var displayMedia = navigator.mediaDevices.getDisplayMedia(constraints);

参数:可选的MediaStreamConstraints对象,它指定了返回的MediaStream的要求。有video与audio两个属性,分别控制是否请求视频、音频轨道。

MediaRecorder:用来进行媒体录制的接口, 通过调用 MediaRecorder() 构造方法实例化一个MediaRecorder对象,对指定的 MediaStream 对象进行录制。

语法

new MediaRecorder(stream, [, options]);

**参数:**需要传入两个参数,第一个是stream,也就是我们通过getDisplayMedia拿到的媒体流 displayMedia,第二个是可选参数。主要有mimeType指定录制的是音频还是视频,录制的格式是什么,比如谷歌的音视频格式video/webm, audio/webm, 还可以设置为mp4。

MediaRecorder的方法有很多,常用的有

  • MediaRecorder.start(timeslice) 意思是开启录制,timeslice是一个可选参数,如果不设置会存储在一个大的buffer中,如果设置了这个参数就会按照时间段存储数据,比如说10s存储一块数据。
  • MediaRecorder.stop() 关闭录制,当停止录制时会触发ondataavailable事件,得到最终的blob数据。

示例代码

https://codesandbox.io/s/screen-recorder-demo-9eopt

参考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章