房间事件回调
开发者可通过设置 RCRTCEngine 中的不同函数回调方法来监听房间内远端用户的状态及资源变化。
状态相关
-
远端用户加入通知:
当有远端用户加入时触发。因用户加入房间后才能发布资源,该回调代表这名用户刚刚加入,此时并无任何资源发布,所以此刻也订阅不到该用户的任何媒体流。
- 参数
roomId
为远端用户所在的房间 ID - 参数
userId
为远端用户 ID
Function(String roomId, String userId)? onUserJoined;
- 参数
-
远端用户离开通知:
当有远端用户离开房间时触发,此时 SDK 会自动取消订阅该用户已发布的流,无需手动调用
unsubscribe
。- 参数
roomId
为远端用户所在的房间 ID - 参数
userId
为远端用户 ID
Function(String roomId, String userId)? onUserLeft;
- 参数
-
远端用户掉线通知:
当有远端用户掉线时触发,代表该用户意外与融云服务断连超过 1 分钟。网络不好、App 意外崩溃或用户主动杀进程等情况,都会造成客户端与融云服务断连。如 1 分钟内没有恢复,则会被服务判定掉线,此时 SDK 会自动取消订阅该用户的所有资源,无需手动调用
unsubscribe
。- 参数
roomId
为远端用户所在的房间 ID - 参数
userId
为远端用户 ID
Function(String roomId, String userId)? onUserOffline;
- 参数
-
远端用户资源状态变更通知:
当远端用户调用了
muteLocalStream
方法时触发。- 参数
roomId
为远端用户所在的房间 ID - 参数
userId
为远端用户 ID - 参数
type
为远端用户变更的资源类型 - 参数
disabled
为远端用户更新后的值,true
代表资源静默,false
代表恢复正常。
Function(String roomId, String userId, RCRTCMediaType type, bool disabled)? onRemoteStateChanged;
- 参数
资源相关
-
远端用户资源发布通知:
当远端用户发布资源时触发。
- 参数
roomId
为远端用户所在的房间 ID - 参数
userId
为远端用户 ID - 参数
type
为远端用户发布的资源类型
Function(String roomId, String userId, RCRTCMediaType type)? onRemotePublished;
- 参数
-
远端用户资源取消发布通知:
当远端用户取消发布资源时触发,接收到后 SDK 会自动取消订阅相应资源。开发者也可以根据资源类型,来给用户做出相应的提示
- 参数
roomId
为远端用户所在的房间 ID - 参数
userId
为远端用户 ID - 参数
type
为远端用户取消发布的资源类型
Function(String roomId, String userId, RCRTCMediaType type)? onRemoteUnpublished;
- 参数
-
合流资源发布通知:
当 MCU 服务器发布资源时触发。
- 参数
type
为发布的资源类型
Function(RCRTCMediaType type)? onRemoteLiveMixPublished;
- 参数
-
合流资源取消发布通知:
当 MCU 服务器取消发布资源时触发。
- 参数
type
为取消发布的资源类型
Function(RCRTCMediaType type)? onRemoteLiveMixUnpublished;
- 参数
首帧回调
-
远端用户发布的视频资源首帧回调
- 参数
roomId
为远端用户所在的房间 ID - 参数
userId
为远端用户 ID - 参数
type
为资源类型
Function(String roomId, String userId, RCRTCMediaType type)? onRemoteFirstFrame;
- 参数
-
合流视频资源首帧回调
- 参数
type
为资源类型
Function(RCRTCMediaType type)? onRemoteLiveMixFirstFrame;
- 参数