2

可以通过以下方式获取 streamID 列表

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

但仅在用户发布流时可用

client.publish(localStream

[[[ 问题 ]]]

我想查看不发布流但通过以下方式加入房间的用户列表

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

当用户加入房间而不发布自己的 localStream 时,用户可以听到流。因此,即使他们不发布流,我也想向所有观众展示。

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

4

3 回答 3

0

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

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

查看onAgora.io 文档中的完整事件列表: 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 频道后查看 RTM 频道中的用户数,您可以使用MemberJoinedMemberLeft 频道事件来监听新用户。

于 2019-05-06T17:13:58.060 回答
0

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

于 2019-02-13T13:53:39.493 回答
-1

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

于 2019-02-18T06:10:38.840 回答