track_event / track_sample 风格一致,C 侧无需解析 JSON。
切层(simulcast)
当发布端推了 simulcast 多层流时,订阅侧的层切换是全自动的:SDK 会自动把可用的各层登记为候选,SFU 根据带宽估计(BWE)在候选层之间切换。你不需要做任何配置,通常只需要监听切层结果。切层完成回调
reason 取值:
当前命中的是哪一层? 订阅句柄(
sub_key 里的 track_id)在整个订阅期间保持稳定,但实际命中的层会被动态切换。监听 layer_switched 拿到的 to_track_id 就是当前命中层,需要的话自行缓存一份 sub_key → 当前层 的映射即可。rtc_switch_layer
返回值:
RTC_OK(请求已发出)/ RTC_INVALID_PARAM(句柄无效或参数为 NULL)/ RTC_NOT_CONNECTED(未入会)/ RTC_ERROR(引擎拒绝)。
请求成功只代表请求已发出,真正切到目标层要等
layer_switched 回调。本 SDK 只支持订阅侧的多层切换,不支持发布 simulcast 多层流。网络质量
周期上报回调
SFU 周期性(典型 1Hz)上报上下行质量。rtc_get_connection_quality
out 由调用方提供,SDK 直接填字段,无需释放。
返回值
活跃说话人
level 降序排列,业务侧直接整体覆盖 UI 即可,不需要自己做差量合并。无人说话时 speakers_count = 0、speakers = NULL。