ImEvent、RoomEvent、UserEvent、MediaEvent 兼容层。事件按生命周期注册。
Engine 级事件
通过MeetingEngine.set*Event() 注册,与 SDK 生命周期一致:
每个接口都有对应空实现:
MeetingEngineSimpleEvent、MeetingImSimpleEvent、MeetingCameraDeviceSimpleEvent、MeetingMicDeviceSimpleEvent。
Session 级事件
通过当前MeetingSession.set*Event() 注册,只接收本次会议的事件:
主要 Meeting 接口也提供
MeetingRoomSimpleEvent、MeetingUserSimpleEvent、MeetingMediaSimpleEvent、MeetingRemoteVideoSimpleEvent、MeetingLocalVideoFrameSimpleEvent 和 MeetingLocalAudioFrameSimpleEvent,调用方只需覆写关心的方法。
线程契约
- Engine、Session 业务、IM、设备、媒体统计和一次性结果回调运行在主线程。
- 本地音视频帧、远端视频帧和远端视频接收状态运行在 RTC 媒体线程,不能直接更新 UI。
- 音量 Map 和活跃说话人 List 在切换线程前已创建快照。
- 本地帧只在显式设置监听时向 RTC 注册;使用完请传
null取消监听,避免持续复制媒体数据。
生命周期约束
SDK 使用channelId + generation 过滤旧频道迟到回调。Session 进入 LEAVING 或 CLOSED 后不再分发会中事件;新会议必须在新返回的 Session 上重新注册监听。