IRTCRoomEventHandler class

@detail callback @brief 房间事件回调接口
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

Constructors

IRTCRoomEventHandler({FutureOr<void> onLeaveRoom(RTCRoomStats stats)?, FutureOr<void> onRoomStateChangedWithReason(String roomId, String uid, RoomState state, RoomStateChangeReason reason)?, FutureOr<void> onRoomStateChanged(String roomId, String uid, int state, String extraInfo)?, FutureOr<void> onStreamStateChanged(String roomId, String uid, int state, String extraInfo)?, FutureOr<void> onAVSyncStateChange(AVSyncState state)?, FutureOr<void> onRoomStats(RTCRoomStats stats)?, FutureOr<void> onRoomEvent(String roomId, String uid, RoomEvent state, RoomEventInfo info)?, FutureOr<void> onUserJoined(UserInfo userInfo)?, FutureOr<void> onUserLeave(String uid, int reason)?, FutureOr<void> onVideoPublishStateChanged(String streamId, PublishState state, PublishStateChangeReason reason)?, FutureOr<void> onAudioPublishStateChanged(String streamId, PublishState state, PublishStateChangeReason reason)?, FutureOr<void> onVideoSubscribeStateChanged(String streamId, SubscribeState state, SubscribeStateChangeReason reason)?, FutureOr<void> onAudioSubscribeStateChanged(String streamId, SubscribeState state, SubscribeStateChangeReason reason)?, FutureOr<void> onLocalStreamStats(String streamId, StreamInfo streamInfo, LocalStreamStats stats)?, FutureOr<void> onRemoteStreamStats(String streamId, StreamInfo streamInfo, RemoteStreamStats stats)?, FutureOr<void> onStreamPublishSuccess(bool isScreen)?, FutureOr<void> onAVSyncEvent(String roomId, String userId, AVSyncEvent eventCode)?, FutureOr<void> onUserPublishStreamVideo(String streamId, StreamInfo streamInfo, bool isPublish)?, FutureOr<void> onUserPublishStreamAudio(String streamId, StreamInfo streamInfo, bool isPublish)?, FutureOr<void> onRoomMessageReceived(int msgid, String uid, String message)?, FutureOr<void> onRoomBinaryMessageReceived(int msgid, String uid, Uint8List message)?, FutureOr<void> onUserMessageReceived(int msgid, String uid, String message)?, FutureOr<void> onUserBinaryMessageReceived(int msgid, String uid, Uint8List message)?, FutureOr<void> onUserMessageSendResult(int msgid, UserMessageSendResult error)?, FutureOr<void> onRoomMessageSendResult(int msgid, RoomMessageSendResult error)?, FutureOr<void> onVideoStreamBanned(String uid, bool banned)?, FutureOr<void> onAudioStreamBanned(String uid, bool banned)?, FutureOr<void> onForwardStreamStateChanged(List<ForwardStreamStateInfo> infos)?, FutureOr<void> onForwardStreamEvent(List<ForwardStreamEventInfo> eventInfos)?, FutureOr<void> onNetworkQuality(NetworkQualityStats localQuality, List<NetworkQualityStats> remoteQualities)?, FutureOr<void> onSetRoomExtraInfoResult(int taskId, SetRoomExtraInfoResult result)?, FutureOr<void> onRoomExtraInfoUpdate(String key, String value, String lastUpdateUserId, int lastUpdateTimeMs)?, FutureOr<void> onRoomStreamExtraInfoUpdate(String streamId, StreamInfo streamInfo, String extraInfo)?, FutureOr<void> onUserVisibilityChanged(bool currentUserVisibility, UserVisibilityChangeError errorCode)?, FutureOr<void> onSubtitleStateChanged(SubtitleState state, SubtitleErrorCode errorCode, String errorMessage)?, FutureOr<void> onSubtitleMessageReceived(List<SubtitleMessage> subtitles)?, FutureOr<void> onRoomWarning(RTCRoom rtcRoom, WarningCode? warningCode)?, FutureOr<void> onTokenWillExpire()?, FutureOr<void> onPublishPrivilegeTokenWillExpire()?, FutureOr<void> onSubscribePrivilegeTokenWillExpire()?, FutureOr<void> onStreamSubscribed(SubscribeState stateCode, String userId, SubscribeConfig info)?})

Properties

hashCode int
The hash code for this object.
no setterinherited
onAudioPublishStateChanged FutureOr<void> Function(String streamId, PublishState state, PublishStateChangeReason reason)?
@detail callback @valid since 3.60. 自 3.60 起,该回调替代了 onStreamStateChanged 方法中的本地音频发布状态变更通知功能。如果你已升级至 3.60 及以上版本 SDK,且还在使用该方法,请迁移至该回调。 @author xuyiling.x10 @brief 音频发布状态改变回调。 @param streamId 流 ID,用于标识特定的音频流。 @param streamInfo 流信息结构体,包含房间 ID、用户 ID 等详细信息,参看 StreamInfo{@link #StreamInfo}。 @param state 发布状态码,参看 PublishState{@link #PublishState}。 @param reason 本地音频流发布状态改变的具体原因,参看 PublishStateChangeReason{@link #PublishStateChangeReason}。 @order 0
getter/setter pair
onAudioStreamBanned FutureOr<void> Function(String uid, bool banned)?
@detail callback @author qipengxiang @brief 通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户音频流的发送时,触发此回调。 @param uid 被禁用/解禁的音频流用户 ID @param banned 音频流发送状态
- true: 音频流发送被禁用 - false: 音频流发送被解禁 @note - 房间内指定用户被禁止/解禁音频流发送时,房间内所有用户都会收到该回调。 - 若被封禁用户断网或退房后再进房,则依然是封禁状态,且房间内所有人会再次收到该回调。 - 指定用户被封禁后,房间内其他用户退房后再进房,会再次收到该回调。 - 在控制台开启音频选路后,只有被封禁/解禁用户会收到该回调。 - 同一房间解散后再次创建,房间内状态清空。
getter/setter pair
onAudioSubscribeStateChanged FutureOr<void> Function(String streamId, SubscribeState state, SubscribeStateChangeReason reason)?
@detail callback @valid since 3.60. @region 房间管理 @author xuyiling.x10 @brief 音频订阅状态发生改变回调。 @param streamId 流 ID,用于标识特定的音频流。 @param streamInfo 流信息结构体,包含房间 ID、用户 ID 等详细信息,参看 StreamInfo{@link #StreamInfo}。 @param state 订阅状态码,参看 SubscribeState{@link #SubscribeState}。 @param reason 音频订阅状态改变的具体原因,参看 SubscribeStateChangeReason{@link #SubscribeStateChangeReason}。 @note 当调用 subscribeStreamAudio{@link #RTCRoom#subscribeStreamAudio} 后会收到该通知。 @order 0
getter/setter pair
onAVSyncEvent FutureOr<void> Function(String roomId, String userId, AVSyncEvent eventCode)?
@detail callback @valid since 3.60. @author xuyiling.x10 @brief 发布端调用 setMultiDeviceAVSync{@link #RTCRoom#setMultiDeviceAVSync} 后音视频同步状态发生错误时,会收到此回调。 @param roomId 房间 ID。 @param uid 用户 ID。 @param eventCode 音视频同步状态错误,参看 AVSyncEvent{@link #AVSyncEvent}。
getter/setter pair
onAVSyncStateChange FutureOr<void> Function(AVSyncState state)?
@detail callback @author wangzhanqiang @brief 发布端调用 setMultiDeviceAVSync{@link #RTCRoom#setMultiDeviceAVSync} 后音视频同步状态发生改变时,会收到此回调。 @param state 音视频同步状态,参看 AVSyncState{@link #AVSyncState}。
getter/setter pair
onForwardStreamEvent FutureOr<void> Function(List<ForwardStreamEventInfo> eventInfos)?
@detail callback @author shenpengliang @brief 跨房间媒体流转发事件回调 @param eventInfos 跨房间媒体流转发目标房间事件数组,详见 ForwardStreamEventInfo{@link #ForwardStreamEventInfo}
getter/setter pair
onForwardStreamStateChanged FutureOr<void> Function(List<ForwardStreamStateInfo> infos)?
@detail callback @author shenpengliang @brief 跨房间媒体流转发状态和错误回调 @param stateInfos 跨房间媒体流转发目标房间信息数组,详见 ForwardStreamStateInfo{@link #ForwardStreamStateInfo}
getter/setter pair
onLeaveRoom FutureOr<void> Function(RTCRoomStats stats)?
@detail callback @region 多房间 @author shenpengliang @brief 离开房间成功回调。
用户调用 leaveRoom{@link #RTSRoom#leaveRoom} 方法后,SDK 会停止所有的发布订阅流,并在释放所有通话相关的音视频资源后,通过此回调通知用户离开房间成功。 @param stats 保留参数,目前为空。 @note - 用户调用 leaveRoom{@link #RTSRoom#leaveRoom} 方法离开房间后,如果立即调用 destroy{@link #RTCRoom#destroy} 销毁房间实例或 destroyRTCEngine{@link #RTCEngine#destroyRTCEngine} 方法销毁 RTC 引擎,则将无法收到此回调事件。 - 离开房间后,如果 App 需要使用系统音视频设备,则建议在收到此回调后再初始化音视频设备,否则可能由于 SDK 占用音视频设备导致初始化失败。 @order 2
getter/setter pair
onLocalStreamStats FutureOr<void> Function(String streamId, StreamInfo streamInfo, LocalStreamStats stats)?
@detail callback @author yejing @brief 本地流数据统计以及网络质量回调。
本地用户发布流成功后,SDK 会周期性(2s)的通过此回调事件通知用户发布的流在此次统计周期内的质量统计信息。
统计信息通过 LocalStreamStats{@link #LocalStreamStats} 类型的回调参数传递给用户,其中包括发送音视频比特率、发送帧率、编码帧率,网络质量等。 @param streamId 流 ID,用于标识特定的本地流。 @param streamInfo 流信息结构体,包含房间 ID、用户 ID 等详细信息,参看 StreamInfo{@link #StreamInfo}。 @param stats 音视频流以及网络状况统计信息。参见 LocalStreamStats{@link #LocalStreamStats}。
getter/setter pair
onNetworkQuality FutureOr<void> Function(NetworkQualityStats localQuality, List<NetworkQualityStats> remoteQualities)?
@detail callback @author chengchao.cc951119 @brief 加入房间并发布或订阅流后, 以每 2 秒一次的频率,报告本地用户和已订阅的远端用户的上下行网络质量信息。 @param localQuality 本地网络质量,详见 NetworkQualityStats{@link #NetworkQualityStats}。 @param remoteQualities 已订阅用户的网络质量,详见 NetworkQualityStats{@link #NetworkQualityStats}。 @note 更多通话中的监测接口,详见通话中质量监测
getter/setter pair
onPublishPrivilegeTokenWillExpire FutureOr<void> Function()?
@detail callback @author qipengxiang @brief Token 发布权限过期前 30 秒将触发该回调。
收到该回调后,你需调用 updateToken{@link #RTSRoom#updateToken} 更新 Token 发布权限。 @note Token 发布权限过期后: - 已发布流或尝试发布流时,本端会收到 onVideoPublishStateChanged{@link #IRTCRoomEventHandler#onVideoPublishStateChanged}、onAudioPublishStateChanged{@link #IRTCRoomEventHandler#onAudioPublishStateChanged} 回调,提示kPublishStateChangeReasonNoPublishPermission,没有发布权限。 - 发布中的流将停止发布。远端用户会收到 onUserPublishStreamVideo{@link #IRTCRoomEventHandler#onUserPublishStreamVideo}、onUserPublishStreamAudio{@link #IRTCRoomEventHandler#onUserPublishStreamAudio} 回调,提示该流已停止发布。
getter/setter pair
onRemoteStreamStats FutureOr<void> Function(String streamId, StreamInfo streamInfo, RemoteStreamStats stats)?
@detail callback @author yejing @brief 本地订阅的远端音/视频流数据统计以及网络质量回调。
本地用户订阅流成功后,SDK 会周期性(2s)的通过此回调事件通知用户订阅的流在此次统计周期内的质量统计信息,包括:发送音视频比特率、发送帧率、编码帧率,网络质量等。 @param streamId 流 ID,用于标识特定的远端流。 @param streamInfo 流信息结构体,包含房间 ID、用户 ID 等详细信息,参看 StreamInfo{@link #StreamInfo}。 @param stats 音视频流以及网络状况统计信息。参见 RemoteStreamStats{@link #RemoteStreamStats}。
getter/setter pair
onRoomBinaryMessageReceived FutureOr<void> Function(int msgid, String uid, Uint8List message)?
@detail callback @author hanchenchen.c @brief 收到房间内广播二进制消息的回调。
房间内其他用户调用 sendRoomBinaryMessage{@link #RTSRoom#sendRoomBinaryMessage} 发送广播二进制消息时,收到此回调。 @param msgid 消息编号。 @param uid 消息发送者 ID。 @param message 收到的二进制消息内容。
getter/setter pair
onRoomEvent FutureOr<void> Function(String roomId, String uid, RoomEvent state, RoomEventInfo info)?
@hidden @detail callback @region 多房间 @valid since 3.60. @author taoshasha @brief 房间事件回调。 @param roomId 房间 ID。 @param uid 用户 ID。 @param state 房间事件状态。详见 RoomEvent{@link #RoomEvent}。 @param info 房间封禁时,包含封禁时间。详见 RoomEventInfo{@link #RoomEventInfo}。 @order 0
getter/setter pair
onRoomExtraInfoUpdate FutureOr<void> Function(String key, String value, String lastUpdateUserId, int lastUpdateTimeMs)?
@valid since 3.52 @detail callback @author lichangfeng.rtc @brief 接收同一房间内,其他用户调用 setRoomExtraInfo{@link #RTCRoom#setRoomExtraInfo} 设置的房间附加信息的回调。 @param key 房间附加信息的键值 @param value 房间附加信息的内容 @param lastUpdateUserId 最后更新本条信息的用户 ID。 @param lastUpdateTimeMs 最后更新本条信息的 Unix 时间,单位:毫秒。 @note 新进房的用户会收到进房前房间内已有的全部附加信息通知。
getter/setter pair
onRoomMessageReceived FutureOr<void> Function(int msgid, String uid, String message)?
@detail callback @author hanchenchen.c @brief 接收到房间内广播消息的回调。
房间内其他用户调用 sendRoomMessage{@link #RTSRoom#sendRoomMessage} 发送广播消息时,收到此回调。 @param msgid 消息编号。 @param uid 消息发送者 ID。 @param message 收到的消息内容。
getter/setter pair
onRoomMessageSendResult FutureOr<void> Function(int msgid, RoomMessageSendResult error)?
@detail callback @author hanchenchen.c @brief 调用 sendRoomMessage{@link #RTSRoom#sendRoomMessage} 或 sendRoomBinaryMessage{@link #RTSRoom#sendRoomBinaryMessage} 向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。 @param msgid 本条消息的 ID。 @param error 消息发送结果,详见 RoomMessageSendResult{@link #RoomMessageSendResult}
getter/setter pair
onRoomStateChanged FutureOr<void> Function(String roomId, String uid, int state, String extraInfo)?
@detail callback @region 多房间 @author shenpengliang @brief 房间状态改变回调,加入房间、异常退出房间、发生房间相关的警告或错误时会收到此回调。 @param roomId 房间 ID。 @param uid 用户 ID。 @param state 房间状态码。
- 0: 加入房间成功。 - !0: 加入房间失败、异常退房、发生房间相关的警告或错误。具体原因参看 ErrorCode{@link #ErrorCode} 及 WarningCode{@link #WarningCode}。 @param extraInfo 额外信息,如 {"elapsed":1187,"join_type":0}
join_type 表示加入房间的类型,0为首次进房,1为重连进房。
elapsed 表示加入房间耗时,即本地用户从调用 joinRoom{@link #RTCRoom#joinRoom} 到加入房间成功所经历的时间间隔,单位为 ms。 @order 0
getter/setter pair
onRoomStateChangedWithReason FutureOr<void> Function(String roomId, String uid, RoomState state, RoomStateChangeReason reason)?
@hidden @detail callback @author shenpengliang @brief 房间状态改变回调,加入房间、异常退出房间、发生房间相关的警告或错误时会收到此回调。 @param roomId 房间 ID。 @param uid 用户 ID。 @param state 房间状态码。参见 RoomState{@link #RoomState}。
- 0: 加入房间成功。 - 1: 加入房间失败、异常退房、发生房间相关的警告或错误。 - 2: 离开房间。 @param reason 房间状态发生变化的原因。参见 RoomStateChangeReason{@link #RoomStateChangeReason}。
getter/setter pair
onRoomStats FutureOr<void> Function(RTCRoomStats stats)?
@detail callback @author yejing @brief 房间内通话统计信息回调。
用户进房开始通话后,每 2s 收到一次本回调。 @param stats 房间内的汇总统计数据。详见 RTCRoomStats{@link #RTCRoomStats}。
getter/setter pair
onRoomStreamExtraInfoUpdate FutureOr<void> Function(String streamId, StreamInfo streamInfo, String extraInfo)?
@valid since 3.54 @detail callback @brief 接收同一房间内,其他用户调用 setStreamExtraInfo{@link #RTCRoom#setStreamExtraInfo} 设置的流附加信息的回调。 @param streamId 流附加信息的流 ID @param streamInfo 流附加信息的流信息 @param extraInfo 流附加信息 @note 新进房的用户会收到进房前房间内已有的全部附加信息通知。
getter/setter pair
onRoomWarning FutureOr<void> Function(RTCRoom rtcRoom, WarningCode? warningCode)?
@hidden @deprecated since 3.41 and will be deleted in 3.51, use onRoomStateChanged{@link #IRTCRoomEventHandler#onRoomStateChanged} and onStreamStateChanged instead. @detail callback @author shenpengliang @brief 发生警告回调。 @param warn 警告代码,参见 WarningCode{@link #WarningCode} @note SDK 运行时出现了(网络或媒体相关的)警告。SDK 通常会自动恢复,警告信息可以忽略。
getter/setter pair
onSetRoomExtraInfoResult FutureOr<void> Function(int taskId, SetRoomExtraInfoResult result)?
@valid since 3.52 @detail callback @author lichangfeng.rtc @brief 调用 setRoomExtraInfo{@link #RTCRoom#setRoomExtraInfo} 设置房间附加信息结果的回调。 @param taskId 调用 setRoomExtraInfo 的任务编号。 @param result 设置房间附加信息的结果,详见 SetRoomExtraInfoResult{@link #SetRoomExtraInfoResult}
getter/setter pair
onStreamPublishSuccess FutureOr<void> Function(bool isScreen)?
@hidden for internal use only @detail callback @author shenpengliang @brief 当发布流成功的时候回调该事 @param uid 流发布用户的用户 ID @param isScreen 流的标识
getter/setter pair
onStreamStateChanged FutureOr<void> Function(String roomId, String uid, int state, String extraInfo)?
@detail callback @author shenpengliang @brief 流状态改变回调,发生流相关的警告或错误时会收到此回调。 @param roomId 房间 ID。 @param uid 用户 ID。 @param state 流状态码,参看 ErrorCode{@link #ErrorCode} 及 WarningCode{@link #WarningCode}。 @param extraInfo 附加信息,目前为空。
getter/setter pair
onStreamSubscribed FutureOr<void> Function(SubscribeState stateCode, String userId, SubscribeConfig info)?
@platform android @detail callback @author shenpengliang @brief 关于订阅媒体流状态改变的回调 @param stateCode 订阅媒体流状态,参看 SubscribeState{@link #SubscribeState} @param userId 流发布用户的用户 ID @param info 流的属性,参看 SubscribeConfig{@link #SubscribeConfig} @note 本地用户收到该回调的时机:调用 subscribeStreamVideo{@link #RTCRoom#subscribeStreamVideo} 订阅/取消订阅指定远端摄像头音视频流后。
getter/setter pair
onSubscribePrivilegeTokenWillExpire FutureOr<void> Function()?
@detail callback @author qipengxiang @brief Token 订阅权限过期前 30 秒将触发该回调。
收到该回调后,你需调用 updateToken{@link #RTSRoom#updateToken} 更新 Token 订阅权限有效期。 @note 若收到该回调后未及时更新 Token,Token 订阅权限过期后,尝试新订阅流会失败,已订阅的流会取消订阅,可通过 onVideoSubscribeStateChanged{@link #IRTCRoomEventHandler#onVideoSubscribeStateChanged}、onAudioSubscribeStateChanged{@link #IRTCRoomEventHandler#onAudioSubscribeStateChanged} 回调,提示错误码为 -1003 没有订阅权限。
getter/setter pair
onSubtitleMessageReceived FutureOr<void> Function(List<SubtitleMessage> subtitles)?
@detail callback @author qiaoxingwang @brief 字幕相关内容回调。
当用户成功调用 startSubtitle{@link #RTCRoom#startSubtitle} 后会收到此回调,通知字幕的相关信息。 @param subtitles 字幕消息内容。参看 SubtitleMessage{@link #SubtitleMessage}。
getter/setter pair
onSubtitleStateChanged FutureOr<void> Function(SubtitleState state, SubtitleErrorCode errorCode, String errorMessage)?
@detail callback @author qiaoxingwang @brief 字幕状态发生改变回调。
当用户调用 startSubtitle{@link #RTCRoom#startSubtitle} 和 stopSubtitle{@link #RTCRoom#stopSubtitle} 使字幕状态发生改变或字幕任务出现错误时,触发该回调。 @param state 字幕状态。参看 SubtitleState{@link #SubtitleState}。 @param errorCode 字幕任务错误码。参看 SubtitleErrorCode{@link #SubtitleErrorCode}。 @param errorMessage 与第三方服务有关的错误信息。
getter/setter pair
onTokenWillExpire FutureOr<void> Function()?
@detail callback @author shenpengliang @brief 当 SDK 检测到 Token 的进房权限将在 30 秒内过期时,触发该回调。 收到该回调后,你需调用 updateToken{@link #RTSRoom#updateToken} 更新 Token 进房权限。 @note 若 Token 进房权限过期且未及时更新:
- 用户此时尝试进房会收到 onRoomStateChanged{@link #IRTCRoomEventHandler#onRoomStateChanged} 回调,提示错误码为 -1000 Token 无效; - 用户已在房间内则会被移出房间,本地用户会收到 onRoomStateChanged{@link #IRTCRoomEventHandler#onRoomStateChanged} 回调,提示错误码为 -1009 Token 无效,同时远端用户会收到 onUserLeave{@link #IRTCRoomEventHandler#onUserLeave} 回调,提示原因为 1 Token 进房权限过期。
getter/setter pair
onUserBinaryMessageReceived FutureOr<void> Function(int msgid, String uid, Uint8List message)?
@detail callback @author hanchenchen.c @brief 收到来自房间中其他用户通过 sendUserBinaryMessage{@link #RTSRoom#sendUserBinaryMessage} 发来的点对点二进制消息时,会收到此回调。 @param msgid 消息编号。 @param uid 消息发送者的用户 ID。 @param message 收到的二进制消息内容。
getter/setter pair
onUserJoined FutureOr<void> Function(UserInfo userInfo)?
@detail callback @author shenpengliang @brief 远端可见用户加入房间,或房内不可见用户切换为可见的回调。
1.远端用户调用 setUserVisibility{@link #RTCRoom#setUserVisibility} 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。
2.远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。
3.房间内隐身远端用户调用 setUserVisibility{@link #RTCRoom#setUserVisibility} 方法切换至可见时,房间内其他用户将收到该事件。
4.新进房用户也会收到进房前已在房内的可见用户的进房回调通知。 @param userInfo 用户信息。参看 UserInfo{@link #UserInfo}。
getter/setter pair
onUserLeave FutureOr<void> Function(String uid, int reason)?
@detail callback @author shenpengliang @brief 远端用户离开房间,或切至不可见时,房间内其他用户会收到此事件 @param uid 离开房间,或切至不可见的的远端用户 ID。 @param reason 用户离开房间的原因:
- 0: 远端用户调用 leaveRoom{@link #RTSRoom#leaveRoom} 主动退出房间。 - 1: 远端用户因 Token 过期或网络原因等掉线。详细信息请参看连接状态提示 - 2: 远端用户调用 setUserVisibility{@link #RTCRoom#setUserVisibility} 切换至不可见状态。 - 3: 服务端调用 OpenAPI 将该远端用户踢出房间。
getter/setter pair
onUserMessageReceived FutureOr<void> Function(int msgid, String uid, String message)?
@detail callback @author hanchenchen.c @brief 收到来自房间中其他用户通过 sendUserMessage{@link #RTSRoom#sendUserMessage} 发来的点对点文本消息时,会收到此回调。 @param msgid 消息编号。 @param uid 消息发送者的用户 ID。 @param message 收到的文本消息内容。
getter/setter pair
onUserMessageSendResult FutureOr<void> Function(int msgid, UserMessageSendResult error)?
@detail callback @author hanchenchen.c @brief 向房间内单个用户发送文本或二进制消息后(P2P),消息发送方会收到该消息发送结果回调。 @param msgid 本条消息的 ID。 @param error 文本或二进制消息发送结果,详见 UserMessageSendResult{@link #UserMessageSendResult} @note 调用 sendUserMessage{@link #RTSRoom#sendUserMessage} 或 sendUserBinaryMessage{@link #RTSRoom#sendUserBinaryMessage} 接口,才能收到此回调。
getter/setter pair
onUserPublishStreamAudio FutureOr<void> Function(String streamId, StreamInfo streamInfo, bool isPublish)?
@detail callback @valid since 3.60. 自 3.60 起,该回调替代了 onUserPublishStreamonUserUnpublishStreamonUserPublishScreenonUserUnpublishScreen 方法来实现下述功能。如果你已升级至 3.60 及以上版本 SDK,且还在使用这两个方法,请迁移至该回调。 @author xuyiling.x10 @brief 房间内远端用户发布或取消发布音频流的回调。 @param streamId 流 ID,用于标识特定的音频流。 @param streamInfo 流信息结构体,包含房间 ID、用户 ID 等详细信息,参看 StreamInfo{@link #StreamInfo}。 @param isPublish 远端用户是否发布音频流。 + true:已发布。 + false:已取消发布或未发布。 @note 当房间内的远端用户调用 publishStreamAudio{@link #RTCRoom#publishStreamAudio} 发布或取消发布音频流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeStreamAudio{@link #RTCRoom#subscribeStreamAudio} 订阅或取消订阅此流。
getter/setter pair
onUserPublishStreamVideo FutureOr<void> Function(String streamId, StreamInfo streamInfo, bool isPublish)?
@detail callback @valid since 3.60. 自版本 3.60 起,该回调替换了 onUserPublishStreamonUserUnpublishStreamonUserPublishScreenonUserUnpublishScreen 方法。如果您已升级到 SDK 版本 3.60 或以上,且仍在使用这两个方法,请迁移至该回调。 @region 房间管理 @author xuyiling.x10 @brief 房间内远端用户发布或取消发布视频流的回调。 @param streamId 流 ID,用于标识特定的视频流。 @param streamInfo 流信息结构体,包含房间 ID、用户 ID 等详细信息,参看 StreamInfo{@link #StreamInfo}。 @param isPublish 远端用户是否发布视频流。 + true:已发布。 + false:已取消发布或未发布。 @note 当房间内的远端用户调用 publishStreamVideo{@link #RTCRoom#publishStreamVideo} 发布或取消发布由摄像头采集的媒体流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeStreamVideo{@link #RTCRoom#subscribeStreamVideo} 订阅或取消订阅此流。
getter/setter pair
onUserVisibilityChanged FutureOr<void> Function(bool currentUserVisibility, UserVisibilityChangeError errorCode)?
@valid since 3.54 @detail callback @author caocun @brief 用户调用 setUserVisibility{@link #RTCRoom#setUserVisibility} 设置用户可见性的回调。 @param currentUserVisibility 当前用户的可见性。
- true: 可见,用户可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。 - false: 不可见,用户不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。 @param errorCode 设置用户可见性错误码,参看 UserVisibilityChangeError{@link #UserVisibilityChangeError}。
getter/setter pair
onVideoPublishStateChanged FutureOr<void> Function(String streamId, PublishState state, PublishStateChangeReason reason)?
@detail callback @valid since 3.60. 自 3.60 起,该回调替代了 onStreamStateChanged 方法中的本地视频发布状态变更通知功能。如果你已升级至 3.60 及以上版本 SDK,且还在使用该方法,请迁移至该回调。 @author xuyiling.x10 @brief 视频发布状态改变回调。 @param streamId 流 ID,用于标识特定的视频流。 @param streamInfo 流信息结构体,包含房间 ID、用户 ID 等详细信息,参看 StreamInfo{@link #StreamInfo}。 @param state 发布状态码,参看 PublishState{@link #PublishState}。 @param reason 本地视频流发布状态改变的具体原因,参看 PublishStateChangeReason{@link #PublishStateChangeReason}。 @order 0
getter/setter pair
onVideoStreamBanned FutureOr<void> Function(String uid, bool banned)?
@detail callback @author qipengxiang @brief 通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户视频流的发送时,触发此回调。 @param uid 被禁用/解禁的视频流用户 ID @param banned 视频流发送状态
- true: 视频流发送被禁用 - false: 视频流发送被解禁 @note - 房间内指定用户被禁止/解禁视频流发送时,房间内所有用户都会收到该回调。 - 若被封禁用户断网或退房后再进房,则依然是封禁状态,且房间内所有人会再次收到该回调。 - 指定用户被封禁后,房间内其他用户退房后再进房,会再次收到该回调。 - 同一房间解散后再次创建,房间内状态清空。
getter/setter pair
onVideoSubscribeStateChanged FutureOr<void> Function(String streamId, SubscribeState state, SubscribeStateChangeReason reason)?
@detail callback @valid since 3.60. @region 房间管理 @author xuyiling.x10 @brief 视频订阅状态发生改变回调。 @param streamId 流 ID,用于标识特定的视频流。 @param streamInfo 流信息结构体,包含房间 ID、用户 ID 等详细信息,参看 StreamInfo{@link #StreamInfo}。 @param state 订阅状态码,参看 SubscribeState{@link #SubscribeState}。 @param reason 视频订阅状态改变的具体原因,参看 SubscribeStateChangeReason{@link #SubscribeStateChangeReason}。 @note 当调用 subscribeStreamVideo{@link #RTCRoom#subscribeStreamVideo} 后会收到该通知。 @order 0
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited