跳到主要内容

房间事件回调

应用程序可以通过 RCRTCRoom 对象的 setRoomEventListener 方法注册一个 RCRTCRoomEventListener 监听器。

注册后,可以监听房间的状态与资源变化。会议模式下,远端参会用户的状态变化都会触发通知。

注册监听器

typescript
room.setRoomEventListener(listener);

状态相关

  1. 远端参会用户加入通知

    当有远端参会用户加入时触发。用户加入房间后才能发布资源,因此该回调代表远端参会用户刚刚加入,此时并无任何资源发布,所以此刻也订阅不到该用户的任何媒体流。

    typescript
    didJoinUser(user: RCRTCRemoteUser): void
  2. 远端参会用户离开通知

    当有远端参会用户离开房间时触发,此时 SDK 会自动取消订阅该用户已发布的流,无需手动调用 unsubscribeStream

    typescript
    didLeaveUser(user: RCRTCRemoteUser): void
  3. 远端参会用户掉线通知

    当有远端参会用户掉线时触发,代表该用户意外与融云服务断连超过 1 分钟。网络不好、应用意外崩溃或用户主动杀进程等情况,都会造成客户端与融云服务断连。如 1 分钟内没有恢复,则会被服务判定掉线,此时 SDK 会自动取消订阅该用户的所有资源,无需手动调用 unsubscribeStream

    typescript
    didOfflineUser(user: RCRTCRemoteUser): void
  4. 远端参会用户音频静默状态变更通知

    当远端参会用户调用了音频流的 mute 方法时触发。参数 mute 为远端参会用户更新后的值,true 代表音频静默,false 代表恢复正常。

    typescript
    didAudioMute(stream: RCRTCInputStream, mute: boolean): void
  5. 远端参会用户视频静默状态变更通知

    当远端参会用户调用了视频流的 mute 方法时触发。参数 mute 为远端参会用户更新后的值,true 代表视频静默,false 代表恢复正常。

    typescript
    didVideoEnable(stream: RCRTCInputStream, enable: boolean): void

资源相关

  1. 远端参会用户资源发布通知

    当远端参会用户发布资源时触发,streams 为该用户当前发布流的集合。从中可以获取发送人(userId)、流标签(tag)、媒体类型(type)、当前状态(state)等信息,也可以调用 subscribeStreams 接口,订阅其中的流。

    typescript
    didPublishStreams(streams: RCRTCInputStream[]): void
  2. 远端参会用户资源取消发布通知

    当远端参会用户取消发布资源时触发。接收到后,SDK 会自动取消订阅这些流;您也可以根据这些流中的信息,为用户做出相应提示。

    typescript
    didUnpublishStreams(streams: RCRTCInputStream[]): void

数据相关

  1. 第一个关键帧到达通知

    typescript
    didReportFirstFrame(stream: RCRTCInputStream, mediaType: RCRTCMediaType): void