getUserMedia获取的mediaStream可以包括例如视频轨道(由硬件或虚拟视频源如相机,视频记录设备,屏幕共享服务等产生),音频轨道(类似地,由物理或虚拟音频源如麦克风,A / D转换器等)以及可能的其他轨道类型。
接受MediaStreamConstraints约束参数对捕获的mediaStream进行限制。
getDisplayMedia从显示设备获取媒体之外
并且constraints参数不接受MediaTrackConstraints 值。不能实现约束。
该MediaStream对象将只有一个MediaStreamTrack用于捕获的视频流; 没有MediaStreamTrack对应于捕获的音频流。
不能保持权限。当选择完要分享的屏幕或窗口后,就不能更改了,除非刷新页面,重新惊醒Scrren Capture
调用getDisplayMedia()需要一个HTTPS源。
当调用getDisplayMedia()时,提示用户允许或拒绝允许屏幕捕获。
当用户选择的权限持续存在时,捕获选择器UI将出现在每个getDisplayMedia()调用中。权限可以通过微软Edvices中的站点权限UI(在URL栏中设置或通过站点信息面板)来管理。
如果一个网页从iframe调用getDisplayMedia(),我们将根据自己的URL单独管理屏幕捕获设备许可。在iframe来自其父网页的不同域的情况下,这为用户提供了保护。
如上所述,不允许MediaStreamConstraints限制影响getDisplayMedia屏幕捕获源的选择。
测试地址:https://ouchunrun.github.io/capture_screen_with_getDisplayMedia/ 这里我使用的是Adapter.js库
和上面提到的一样,他需要是一个HTTPS源才能访问。 右下方也能看到,这里的对等连接时的RTCPeerConnection调用的是Adapter.js里面封装的方法,而不是浏览器自带的。