创建共享屏幕,切换共享源

electron sdk

  1. 新建 共享窗口屏幕。 共享的窗口信息已经能传出去。我能切换另外一个共享源窗口信息直接替换之前的共享吗

可以的。通过 videoSourceStartScreenCaptureByWindow 方法指定窗口 ID 共享窗口。
https://docs.agora.io/cn/Interactive%20Broadcast/API%20Reference/electron/classes/agorartcengine.html#videosourceinitialize

共享屏幕方法
videosourceStartScreenCaptureByScreen(724045330, {x: 0, y: 0, width: 1920, height: 680}, {width: 1920, height: 680, bitrate: 500, frameRate: 15})
报错
node_modules/agora-electron-sdk/js/Api/index.js:85 api videosourceStartScreenCaptureByScreen failed. this is an error
thrown by c++ addon layer. it often means sth is
going wrong with this function call and it refused
to do what is asked. kindly check your parameter types
to see if it matches properly.

这个是我参数传错了吗

你是 Windows 系统的吗? Windows 系统中,screenSymbol 指屏幕位置,你的 724045330 值是怎么来的呢?
你现在是要进行什么操作啊?更新屏幕共享内容还是开始屏幕共享?
electron demo里有关于屏幕共享的所有方法的调用,你可以参考下。https://github.com/AgoraIO/Electron-SDK

Mac 系统
724045330 是使用的 electron desktopCapturer.getSources 获取到的屏幕id
我是 新建共享

你用 getScreenDisplaysInfo 方法获取屏幕 ID 吧。

我怀疑是你的分辨率设置的太高了(不支持)。你看下这个分辨率码率对照表:https://docs.agora.io/cn/Video/API%20Reference/electron/interfaces/videoencoderconfiguration.html

最开始 是使用的 getScreenDisplaysInfo,发现不行后来换掉了

这个问题已解决
videosourceStartScreenCaptureByScreen({id: displayId}, {x: 0, y: 0, width: 0, height: 0}, {width: 0, height: 0, bitrate: 500, frameRate: 5})

第一个参数 不是number 型的 ID 是一个对象

对的。。