为CEF 3增加应用程序共享功能(无需安装插件,原生支持)

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/epubcn/article/details/83863594

以前如果想在Chrome中使用JS进行全屏幕/应用程序共享(navigator.getDisplayMedianavigator.mediaDevices.getUserMedia),需要额外安装一个插件,下载插件还需要配置科学上网环境。如果作为产品功能发布,要求最终用户来进行这个操作,那就比较扯淡了。

好消息是从Chrome 70.0.3531.0开始,已经不再需要安装额外的插件就可以支持全屏幕/应用程序共享了。可以看这里:https://groups.google.com/forum/#!topic/discuss-webrtc/Uf0SrR4uxzk [帖子中那个链接需要科学上网环境]

而如果你的产品是基于CEF作为容器供用户来使用,那么就最好升级到与Chromium 70的正式版本:3538,于2018年9月发布。但是不幸的是,不知道出于什么原因,这个版本只提供了全屏幕共享,没有提供应用程序共享功能。那怎么办呢?我们只有对照Chromium的源码,在CEF中增加关于应用程序共享的部分,然后再自己编译一份出来。

我这里提供一份已经编译好的版本(windows32),需要的话可以到这里下载:https://download.csdn.net/download/epubcn/10772931
注:需要macOS x64的版本的话可以私信我。

注意,启动时需要增加以下两个选项:

–enable-media-stream
–enable-experimental-web-platform-features

然后在CEF中访问这个网址:https://webrtc.github.io/samples/src/content/getusermedia/getdisplaymedia/
点击下方的Start screen capture,就会发现弹出了选择全屏幕还是某个正在运行的应用程序的窗口了。
CEF_APP_SHARING

参考资料:
https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
https://peter.sh/experiments/chromium-command-line-switches/

猜你喜欢

转载自blog.csdn.net/epubcn/article/details/83863594
CEF
今日推荐