获取语音讨论室中不发布流 Agora.io 用户列表



可以通过以下方法获取流ID列表

client = AgoraRTC.createClient({mode, codec});
client.on('stream-subscribed'

但它仅在用户发布流时可用

client.publish(localStream
[

[ 问题 ]]]

我想查看未发布流但通过以下方式加入聊天室的用户列表

client.join(null, 'room-name', 'user-id');

因为用户可以在加入聊天室时听到流,而无需发布自己的 localStream。因此,我想向所有观众展示,即使他们不发布流。

为了节省带宽,最好不要发布本地流,只订阅语音。因此,我想识别所有用户,即使他们不发布 stream

信令系统添加到现有代码中,以便在用户加入系统时向所有用户发送信号。如果需要更完美地实现,您可以跟踪用户流并进行列表。

应使用 peer-online 事件(在远程用户或主机加入频道时发生。

client.on('peer-online', function(evt) {
  console.log('peer-online', evt.uid);
});

查看 Agora.io 文档中on事件的完整列表:https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.client.html#on

更新

根据下面的评论,此方法仅适用于所有用户都具有广播角色communication模式。在live模式下,没有办法获取使用 Agora RTC SDK 的用户,但你可以使用 Agora RTM SDK 统计频道中的用户。

借助 Agora RTM SDK,您可以创建一个数据通道,每个用户都会加入该通道,并加入视频直播。Agora RTM 允许您在加入 RTM 频道之前或之后查看 RTM 频道中的用户数量,您可以使用MemberJoinedMemberLeft频道事件来监听新用户。

定期 ping 所有可用的流可能有助于了解何时有人进入房间但不流式传输。

最新更新