Skip to main content
继承 srtc.ChannelHandler,覆写需要的方法,在 Channel.join(token, handler=...) 时传入。未覆写的事件会被忽略。
  • 所有方法都在 asyncio 事件循环线程里调用,不需要加锁
  • async 方法会作为 Task 调度,不会阻塞后续事件
  • 方法里抛出的异常会被记录到 srtc logger,不会中断 SDK

事件列表

on_active_speakers、on_connection_quality、on_layer_switched 依赖频道的流媒体引擎,部分部署下不会触发。业务逻辑请不要依赖它们一定到达。

顺序与时机

用户类、轨道类事件之间不保证先后顺序。例如某个用户的 on_track_added 可能先于他的 on_user_join 到达。按 uid 做幂等处理即可,不要假设”先加入、后发布”。
  • 入会前已经在频道里的用户和轨道不会触发 on_user_join / on_track_added,请在入会后读取 ch.users
  • 同一路轨道的 on_audio_frame / on_video_frame 严格按顺序到达
  • on_audio_frame 是高频事件,请用普通函数并尽快返回;需要做耗时处理时,更推荐用 ch.audio_frames() 的 async for 方式消费

断线处理

区分三种情况: