跳到主要内容

房间事件回调

开发者可通过实现 RCRTCEngine 事件回调,来监听房间内远端用户(直播模式下为远端主播)的状态及资源变化。

提示

在直播模式下,观众因为只可订阅主播资源,自己不能发布,其操作对直播并无任何影响。另一方面通常观众数量比较多,任何关于观众进出直播间及订阅事件的监听处理可能都会对性能造成严重影响。因此,在直播模式下,以下事件为只针对主播的状态监听。

状态相关

  1. 远端用户(直播模式下为远端主播)加入通知:

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

    public OnUserJoinedDelegate OnUserJoined { set; internal get; };
  2. 远端用户(直播模式下为远端主播)离开通知:

    当有远端用户(直播模式下为远端主播)离开房间时触发,此时 SDK 会自动取消订阅该用户已发布的流,无需手动取消订阅。

    public OnUserLeftDelegate OnUserLeft { set; internal get; };
  3. 远端用户(直播模式下为远端主播)掉线通知:

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

    public OnUserOfflineDelegate OnUserOffline { set; internal get; };
  4. 远端用户(直播模式下为远端主播)音频静默状态变更通知:

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

    public OnRemoteStateChangedDelegate OnRemoteStateChanged { set; internal get; };

资源相关

  1. 远端用户(直播模式下为远端主播)资源发布通知:

    当远端用户(直播模式下为远端主播)发布资源时触发,可以调用 SubscribeLiveMix 接口,订阅其中的流。

    public OnRemoteLiveMixPublishedDelegate OnRemoteLiveMixPublished { set; internal get; };
  2. 远端用户(直播模式下为远端主播)资源取消发布通知:

    当远端用户(直播模式下为远端主播)取消发布资源时触发,接收到后 SDK 会自动取消订阅这些流。开发者也可以根据这些流中的信息,来给用户做出相应的提示

    public OnRemoteLiveMixUnpublishedDelegate OnRemoteLiveMixUnpublished { set; internal get; };

数据相关

  1. 音频数据帧帧到达通知:

    public void SetAudioListener(RCRTCOnAudioFrameListener listener);
  2. 房间自定义消息到达通知:

    public event OnMessageReceivedDelegate OnMessageReceived(RCMessage message, int left);