Electron通过Electron webview(loadUrl())使用屏幕共享

jucafojl  于 2023-08-01  发布在  Electron
关注(0)|答案(1)|浏览(240)

我开发了一个小型的Electron Dekstop应用程序,它可以处理我的webapp上的登录,然后通过Electron loadUrl()“加载”webapp。
我们已经在那个web应用程序中实现了Jitsi meet(带有特定的UI等)。除了屏幕共享,一切都很好。(第一次开发是在几年前,由于Electron不允许自定义chrome扩展,我们只是懒得让屏幕共享工作)。
从那时起,发生了很多变化,似乎这个项目设法使它工作。
我知道有一个解决方案允许Electron通过@jitsi/electron-sdk使用jitsi屏幕共享,但我想知道在我的情况下是否存在解决方案(也就是Jitsi没有直接在Electron中实现,而是通过loadUrl())。
有没有一个chrome扩展可以添加到我的electron项目中,允许chrome获取JitsiMeetElectron.obtainDesktopStreams函数?
或者是在我们的Electron项目中从头开始实现jitsi的唯一解决方案?
先谢谢你。

3ks5zfa0

3ks5zfa01#

使用desktopCapturer共享加载URL中的屏幕在**app.whenReady()中添加此代码。**这将自动筛选第一个可用屏幕

session.defaultSession.setDisplayMediaRequestHandler((request, callback) => {
    desktopCapturer.getSources({types: ['screen']}).then((sources) => {
        callback({video: sources[0]});
     });
 });

字符串
但是如果你想选择一个特定的屏幕,你需要在Electron中实现你自己的桌面选择器对话框desktopCapturer。在回调函数中不是传递sources[0],而是发出一个电子事件,显示所有可用的屏幕,然后返回特定的源ID并将其传递给callback({video: sources[id]});
它可能不工作的情况下,谷歌会议屏幕共享,因为谷歌不允许这样做,但它的作品在我的情况下,当我必须加载bigbluebutton video conferencing网络应用程序在电子通过加载网址

相关问题