我正在开发一个桌面应用程序,通过互联网与其他用户共享计算机屏幕。
cef支持WebRTC技术,我正在尝试将其用于屏幕共享。不幸的是,cef不支持捕获本机屏幕。我遵循了一些教程,展示了如何更改cef的源代码以共享屏幕,但没有成功。
接下来的过程是1和2:
1-在中指定的设置(在窗口上):https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md
2-以下内容中规定的变更:http://arkenthera.github.io/blog/Enabling-CEF-to-Screen-Share-using-getUserMedia-API/
在进程2中,运行chrome/src/cef/tools中的patch.bat文件时出现错误。发现patch.bat中某些指定文件的路径不一致,我复制了chrome/src/cef的patch.bat,然后运行。在chromium/src/cef/patch/patches中的allow_screen_sharing.patch文件中发生执行中错误。
cef论坛中的这个主题(https://bitbucket.org/chromiumembedded/cef/issues/1065)提供了一些关于如何修改cef以支持屏幕共享的信息。尽管进行了更改,但当我使用--enable-usermedia-sceen-capping标志运行cefclient并访问https://html5-demos.appspot.com/static/getusermedia/screenshare.html进行屏幕捕获时,我收到了请求激活该标志的消息。
有人与o cef合作过屏幕共享并取得了成功?他们知道如何为使用cef的应用程序提供这种支持?
谢谢大家。
如果你还没有解决它(否则,对于其他有同样问题的人来说):我最近在Chromium 53和54中都实现了它。您必须使用修补程序文件中的更改手动编辑libcef/browser/browser_host_impl.cchttps://github.com/buglloc/cef-builds/blob/master/patches/allow_screen_sharing.patch
行号已经更改,因此您必须在每次更改之前/之后查找代码。只需在忍者构建之前进行更改。