我们正在探索WebRTC,但看到了有关今天可能性和支持的冲突信息。
使用WebRTC,是否可以重新创建类似于join.me或WebEx的屏幕共享服务,其中:
- 您可以分享屏幕的一部分
- 您可以授予对方控制权
- 不需要下载任何内容
在任何WebRTC浏览器上今天是否可行?Chrome在iOS上呢?
我们正在探索WebRTC,但看到了有关今天可能性和支持的冲突信息。
使用WebRTC,是否可以重新创建类似于join.me或WebEx的屏幕共享服务,其中:
在任何WebRTC浏览器上今天是否可行?Chrome在iOS上呢?
chrome.tabCapture API可供Chrome应用程序和扩展使用。
这使得捕获选项卡的可见区域成为流成为可能,该流可以在本地使用或通过RTCPeerConnection的addStream()共享。
有关更多信息,请参见WebRTC Tab Content Capture proposal。
最初支持使用带有chromeMediaSource约束条件的getUserMedia来共享“普通”网页的屏幕共享,但现已被禁止。
编辑于2015年4月1日:现在只有Chrome应用程序和扩展程序中支持屏幕共享。
您可能已经了解到在Chrome Canary(26+)中提供了屏幕截图(而非标签截图)功能。我们最近在以下网址上发布了演示:https://screensharing.azurewebsites.net
请注意,您需要在https://下运行它。
video: {
mandatory: {
chromeMediaSource: 'screen'
}
about:flags
(选项已丢失)和 --enable-usermedia-screen-capture
(不起作用),也无法在 Chrome 45 中让它工作。http://joinaspot.com/ 是一个域名商店。https://github.com/XSockets/WebRTC 返回404。 - Peter V. Mørch我知道我回答有点晚了,但希望它能帮助那些遇到问题的人,如果不是原帖。
目前,Firefox和Chrome都支持通过WebRTC作为媒体流共享整个屏幕或其中一部分(您可以选择的某些应用程序窗口),就像摄像头/麦克风提供的内容一样,因此还没有让其他方控制您的桌面的选项。除此之外,还有一个问题,您的网站必须在https
模式下运行,并且在firefox和chrome中,用户需要安装扩展程序。
您可以在Muaz Khan的屏幕共享演示中尝试,该页面也包含所需的扩展程序。
附:如果您不想安装扩展程序来运行演示,在firefox中(在chrome中无法逃脱扩展程序),您只需要修改两个标志:
about:config
media.getusermedia.screensharing.enabled
设置为true
。*.webrtc-experiment.com
添加到media.getusermedia.screensharing.allowed_domains
标志中。这是可能的,我已经在此方面进行了工作并构建了一个屏幕共享演示。在此期间,观看者可以访问您的鼠标和键盘。如果他移动了他的鼠标,那么您的鼠标也会移动,如果他从键盘上输入,则会输入到您的电脑中。
查看此代码,此代码用于屏幕共享...
现在,在这些日子里,您可以使用此功能共享屏幕,无需任何扩展程序。
const getLocalScreenCaptureStream = async () => {
try {
const constraints = { video: { cursor: 'always' }, audio: false };
const screenCaptureStream = await navigator.mediaDevices.getDisplayMedia(constraints);
return screenCaptureStream;
} catch (error) {
console.error('failed to get local screen', error);
}
};
navigator.mediaDevices.getDisplayMedia(constraint).then((stream)=>{
// todo...
})
现在你可以这样做,但Safari在音频方面与Chrome不同。