小程序获取web端分享屏幕

你好,我们有个需求:
小程序端可以看到 web端的分享屏幕;

web端的分享屏幕是不是也被当做一个 player 进行展示的?

那么,在小程序端如何知道哪个的分享的屏幕呢?

需要自己在业务逻辑层去做区分,例如可以分别记录屏幕共享的 uid 和摄像头流的 uid,然后根据 uid 做区分。

1赞

你好;
我在小程序和web端声网交互过程中;
小程序可以看到web端, web端也可以看到小程序端的人
但是, 小程序端看不到 web端分享的屏幕;

我debug到的问题是:

client.on("stream-added", e => {

web端在分享屏幕时,并没有触发小程序 stream-added 的事件;

而三个人,是正常的; 可以触发事件; 分享屏幕就不可以了;

web端一打开有两个websocket

确定web端,publish成功了么?
如果用这个在线 demo 来推送屏幕共享流,小程序端能正常看到么?
https://webdemo.agora.io/agora-web-showcase/examples/Agora-Screen-Sharing-Web/

web端 是一直在用的; 同事说 在web端之间屏幕共享是正常的;

是正常的

有可能是同事写的有问题吗?

我是先 join 再 publish 才有的屏幕共享;
可能同事没有 publish吗?
但是,web端是正常的啊;

用 demo 的话,小程序可以正常看到 web 的屏幕共享对吗?

但是你们自己的 web 项目,和小程序互通,小程序看不到 web 的屏幕共享,web 可以看到 web 的屏幕共享?是这样吗?

用你提供的地址是正常的;

在自己的项目中 web端可以看到web端的共享屏幕

小程序端看不到 web端的共享屏幕

我在web端 看到了 发布成功的 事件被触发了啊

你看下 web 端屏幕共享的 client 对应的 mode 是什么?mode 设为 live,codec 设为 h264,再试试看。
client = AgoraRtc.createClient({mode: "live", codec: "h264"});

麻烦了
好的 ; 我让同事改一下看看;

好的,有问题再联系

web端 在测试时 分享屏幕时,
出现插件错误;
但是, 打开正式服时,正常;

正式服正常使用

正式服和测试使用的 extension id 是一样的;
在Chrome 插件中的ID 也是一样的; 都是 minllpmhdgpndnkomcoccfekfegnlikg

chrome 版本是多少?Chrome 72 或以上版本,就无需使用插件了。

好的 我的Chrome是80版本;

之后, 我判断一下;

分享屏幕可以了; 同事代码join 的 channel 有问题;

不过 我是在火狐浏览器上整的; Chrome测试时 不知道有啥子问题
多谢!

好的。火狐也是不需要插件的哈

我在 web 端 输入的UID 是 ‘9’

image

小程序端获取到的 UID 却是 10001

我尝试把UID=9 换成 10000 结果又变成了 100000001

因为你用的是 string 型 uid,sdk 会维护一套 string 和 int 之间的映射。
你看看这篇文档:
https://docs.agora.io/cn/faq/string

好的 web端改成 数字 9 就调好了

不过小程序端 生成UID 我看到生成的是string啊

let uid = `${parseInt(Math.random() * 1000000)}`;

那么, 小程序端传入的字符串 123 但是在web端收到了 数字 123

之后, 如果要是小程序支持了 string 的uid;
会不会影响到现有的代码 ?

小程序 uid 应该是 int 型的啊,不是 string 型的啊?


从 v2.8.0 起,才支持 string 型 uid,微信小程序 SDK 目前的版本是 v2.4.1,短期内是不会更新版本的。

另外,因为 string uid 需要完成映射,出于稳定性考虑,我们建议统一用 int 型的 uid。