我们正在探索 WebRTC,但看到了关于目前可能和支持的信息的相互矛盾的信息。
使用 WebRTC,是否可以重新创建类似于 join.me 或 WebEx 的屏幕共享服务,其中:
- 您可以共享屏幕的一部分
- 你可以把控制权交给对方
- 无需下载
今天使用任何 WebRTC 浏览器都可以做到这一点吗?iOS 上的 Chrome 怎么样?
我们正在探索 WebRTC,但看到了关于目前可能和支持的信息的相互矛盾的信息。
使用 WebRTC,是否可以重新创建类似于 join.me 或 WebEx 的屏幕共享服务,其中:
今天使用任何 WebRTC 浏览器都可以做到这一点吗?iOS 上的 Chrome 怎么样?
chrome.tabCapture API可用于 Chrome 应用程序和扩展程序。
这使得可以将选项卡的可见区域捕获为可以在本地使用或通过 RTCPeerConnection 的 addStream() 共享的流。
有关更多信息,请参阅WebRTC 选项卡内容捕获提案。
屏幕共享最初支持使用带有 chromeMediaSource 约束的 getUserMedia 的“普通”网页——但这已被禁止。
编辑 2015 年 4 月 1 日:现已编辑,仅 Chrome 应用程序和扩展程序中的 Chrome 支持屏幕共享。
你们可能知道屏幕捕获(不是 tabCapture )在 Chrome Canary (26+) 中可用,我们最近刚刚发布了一个演示;https://screensharing.azurewebsites.net
请注意,您需要在 https:// 下运行它,
video: {
mandatory: {
chromeMediaSource: 'screen'
}
你也可以在这里找到一个例子; https://html5-demos.appspot.com/static/getusermedia/screenshare.html
我知道我回答得有点晚了,但希望它可以帮助那些偶然发现该页面的人,如果不是 OP。
目前,Firefox 和 Chrome 都支持通过 WebRTC 与对等方共享整个屏幕或部分屏幕(您可以选择的某些应用程序窗口)作为媒体流,就像您的相机/麦克风提要一样,因此无法让其他方控制你的桌面呢。除此之外,还有另一个问题,您的网站必须在https
模式下运行,并且在 firefox 和 chrome 中,用户都必须安装扩展程序。
您可以在这个 Muaz Khan 的屏幕共享演示中尝试一下,该页面也包含所需的扩展。
P.S:如果你不想安装扩展来运行demo,在firefox中(chrome中没有办法转义扩展),你只需要修改两个标志,
about:config
media.getusermedia.screensharing.enabled
为true
。*.webrtc-experiment.com
到media.getusermedia.screensharing.allowed_domains
标志。据我所知,目前任何浏览器都不可能,尽管 Google Chrome 团队表示他们最终打算支持这种情况(请参阅他们路线图上的“屏幕共享”要点)); 而且我怀疑这意味着最终其他浏览器会跟进,大概是 IE 和 Safari 会出现尾随。但所有这些可能都在 2 月之后的某个地方发布,届时他们应该最终确定当前的 WebRTC 标准并交付生产位。(希望微软在最后一分钟的工作不会搞砸。)我可能错过了最近的一些事情,但我一直在非常仔细地关注这个项目,我认为屏幕共享甚至没有成功还没有进入 Chrome Canary,更不用说 dev/beta/prod。Opera 是唯一在其 WebRTC 实施上与 Chrome 保持同步的浏览器(FireFox 似乎落后了大约六个月),我也没有看到该团队关于屏幕共享的任何信息。
有人告诉我,现在有一种方法可以做到这一点,那就是编写您自己的网络摄像头驱动程序,以便您的本地屏幕显示为 WebRTC getUserMedia() API 只是另一个视频源。我不知道有人这样做过——当然,这需要在有问题的机器上安装驱动程序。到所有的事情都说完了,使用 VNC 或类似的东西可能会更容易。
有一个开源的 chrome 扩展可以做到这一点。请查看 https://github.com/ant-media/Chrome-Screen-Capture-Extension
Github Wiki 上还有一个使用扩展的文档
https://github.com/ant-media/Ant-Media-Server/wiki/WebRTC-Screen-Sharing
navigator.mediaDevices.getDisplayMedia(constraint).then((stream)=>{
// todo...
})
现在你可以做到了,但 Safari 在音频方面与 Chrome 不同。