You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Agora RTC直播过程中流中断问题求助

Agora直播ICE重连后观众画面卡顿的排查与解决

根据你提供的日志,ICE连接短暂断开后虽恢复,但观众端画面卡住无法恢复,核心问题是重连后媒体流未正确恢复传输,以下是具体排查和修复方案:

  • 升级SDK版本
    你当前使用的是Agora RTC SDK 4.14.2,该版本可能存在ICE重连后媒体流停滞的已知问题。建议升级到4.x系列的最新稳定版本,官方后续版本已修复部分网络重连后的媒体流恢复bug。

  • 监听媒体流状态并处理中断
    在Web推流端,添加对媒体轨道和流的状态监听:

    // 监听轨道结束事件
    track.on('ended', () => {
      console.log('Media track ended, need to re-acquire and publish');
      // 重新获取媒体轨道并发布
      rePublishStream();
    });
    
    // 监听流移除事件
    client.on('media-stream-removed', (evt) => {
      console.log('Media stream removed, re-publish');
      rePublishStream();
    });
    

    当检测到轨道结束或流被移除时,重新初始化媒体设备并发布流。

  • ICE重连后强制重发布
    在onICEConnectionStateChange事件中,当状态变为connected时,主动执行取消发布再重新发布的操作,确保媒体流重新建立传输:

    client.on('ice-connection-state-change', (evt) => {
      if (evt.state === 'connected') {
        // 取消当前发布的流
        client.unpublish().then(() => {
          // 重新发布当前媒体轨道
          return client.publish(localTracks);
        }).catch(err => {
          console.error('Re-publish failed:', err);
        });
      }
    });
    
  • 排查网络与设备稳定性

    • 推流端尽量使用稳定的有线网络或信号良好的Wi-Fi,避免频繁的网络波动触发ICE重连;
    • 开启网络质量检测,通过client.enableNetworkQuality(1)获取推流端的上行网络质量,定位是否是网络抖动导致的问题;
    • 检查推流端的媒体设备是否存在被其他应用抢占的情况(比如浏览器权限变更、摄像头被其他程序调用),这种情况会导致媒体轨道中断,需要重新申请设备权限并初始化。

内容的提问来源于stack exchange,提问作者Muhammad Ibrahim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:36:00