我需要使用WebRTC实现屏幕共享。我知道WebRTC支持共享选项卡内容,但我需要共享整个屏幕。我正在考虑的一个解决方案是经常截图,并使用WebRTC数据通道将图像传输给其他方。然后,每次接收到新图像时,另一方都会更新图像。
这有可能实现吗?特别是我想知道是否可以使用WebRTC数据通道传输图像?
提前谢谢。
getUserMedia支持整个屏幕的屏幕共享,而不仅仅是选项卡内容。
我做了一个屏幕捕获演示(使用强制约束chromeMediaSource:"screen"),它将流管道传输到RTCPeerConnection:https://simpl.info/screencapture.
chrome.tabCaptureneneneba API获取选项卡内容,但这当然不是您想要的:这里的示例(尽管代码现在已损坏)。
编辑:添加HTTPS到链接:这是屏幕捕获所必需的。
屏幕共享可以通过Chrome中的实验getUserMedia
约束来实现(在Firefox中还不可用)。
您需要首先在chrome://flags
中启用名为Enable screen capture support in getUserMedia()
的标志。
这里有一个关于如何捕捉屏幕的好例子:https://html5-demos.appspot.com/static/getusermedia/screenshare.html.
看看这个Chrome扩展,它实现了桌面共享,非常好。https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/