Skip to main content
订阅有两种方式:
  • 自动订阅 —— 入会前调 rtc_set_auto_subscribe,SDK 自动订上所有远端轨道。录制、混音、AI 接入这类”全都要”的场景用这个
  • 手动订阅 —— 在轨道事件回调里挑需要的轨道逐个订阅
两种方式的媒体数据都走同一个 rtc_set_track_sample_callback 回调。

rtc_subscribe_audio

订阅指定用户的音频轨道。 返回值

rtc_subscribe_video

订阅指定用户的视频轨道。参数与返回值同 rtc_subscribe_audio;订阅视频合成流时传 RTC_MCU_PUBLISHER_UID / RTC_TRACK_MCU_ID
合成流(program)的订阅不另设接口,统一用上面两个通用接口配合保留常量完成。详见 合成流(program)

rtc_unsubscribe

取消订阅。合成流传发布者 uid 加对应的保留 track_id。返回值同上。 取消订阅后,SDK 会自动停止该轨道的数据收集,对应的 track_sample 回调随之停止。

手动订阅示例


rtc_request_key_frame

主动请求某条远端视频轨道立即下发关键帧(向发布端发送 RTCP PLI)。 返回值 什么时候调用
  • 刚订阅上一条视频、想尽快出画面
  • 解码器报错、画面花屏或灰屏,需要刷新参考帧
什么时候不用调用
丢包不需要你请求关键帧。 少量丢包由 SDK 的 NACK 重传自动补回,不会导致画面损坏,因此 SDK 不会、也不建议你基于丢包率去请求关键帧 —— 那样只会触发不必要的关键帧,反而推高码率、加剧拥塞。请只在你的解码器真的报错或画面已经花屏时才调用。接口已内置限流(每秒最多 1 次),逐帧解码报错时反复调用也不会把请求刷爆。

相关