文档导航
Web
SDK 版本:  3.X
2023.4.24 起该版本 SDK 停止维护
公告:3.X 版本 SDK 已经停止维护,并不再提供技术支持,建议您集成 5.X SDK 或尽快升级 SDK。

升级说明

更新时间:2023-09-08 PDF
警告

由于谷歌官方决定自 Chrome 93 版本开始不再支持 plan-b 协议,因此 RTCLib v3 目前已停止维护,请所有 RTCLib v3 及 CallLib v3 用户尽快迁移至 RCRTCAdapter 桥接版本,迁移方案请查看【RTCAdapter 替换说明】。
目前所有 RTCLib v3 相关集成文档内容已更新为 RCRTCAdapter 集成文档,新集成用户请优先使用 RTCLib v5.0 并查看相应版本文档。

RCRTCAdapter 是融云为所有 RTCLib v3 用户提供的迁移方案,以便于用户最小化改动的情况下可以直接升级至 RTCLib v5。

安装依赖

迁移前请先确认您当前工程中使用的 RongIMLib 版本及 RongRTCLib 版本,并清理老版本文件引用。

  • RongIMLib v2 用户
  • RongIMLib v3/v4 用户
  • RongIMLib v5 用户
RongIMLib v2 版本用户,需要升级 RongIMLib 版本至 v2.8 以上

使用 Npm 包管理器方式集成

# 安装 RongIMLib v2 最新版本
npm i @rongcloud/imlib-v2@latest -S
# 安装 RTCLib v5 最新版本
npm i @rongcloud/plugin-rtc@latest -S
# 安装 RCRTCAdapter
npm i @rongcloud/adapter-plugin-rtc@latest -S
              
已复制
1
2
3
4
5
6

使用 CDN 方式集成

<!-- RongIMLib v2.8 -->
<script src="https://cdn.ronghub.com/RongIMLib-2.11.4.prod.js"></script>
<!-- RTCLib v5.0 -->
<script src="https://cdn.ronghub.com/RCRTC-5.3.13.prod.js"></script>
<!-- RCRTCAdapter -->
<script src=" https://cdn.ronghub.com/RCRTCAdapter-1.1.0.prod.js"></script>
              
已复制
1
2
3
4
5
6

代码调整

以下详细列出的是使用 RCRTCAdapter 升级所需要进行的修改内容。注意:RCRTCAdapter 中的模块定义,在多次初始化时仅最后一次的初始化回调有效

初始化 RTCLib

  • RongIMLib v2 用户
  • RongIMLib v4 用户
  • RongIMLib v5 用户
代码示例
// IMLib v2 初始化
RongIMClient.init(appkey)

// RTCLib v5 初始化,RCRTC 为 RTCLib v5 的顶级变量定义,详情请查看 RTCLib v5 集成文档
const rtcClient = RongIMClient.getInstance().install(RCRTC.installer, { ...params })
              
已复制
1
2
3
4
5

RCRTCAdapter

API 参考:init

API 参考:changeLiveRole

API 参考:destroy

// 初始化方式变更,不再使用 'new RongRTC()',同时需要传递 RCRTCClient 实例
// 原方法:const rongRTC = new RongRTC({ ... })
RCRTCAdapter.init({ client: rtcClient, bitrate?, liveRole?, mode?, liveType? })

// 由于初始化方式变更,故模块获取方式也需要变更,现在直接通过 RCRTCAdapter 顶级变量获取
// 原方法:const { Room, Stream, Message, Device, Storage, StreamType } = rongRTC
const { Room, Stream, Message, Device, Storage, StreamType, StreamSize,Mode, LiveType, ROLE } = RCRTCAdapter;

// 替换 rongRTC.changeLiveRole 接口
RCRTCAdapter.changeLiveRole(ROLE.AUCHOR)

// 反初始化,相当于原 'rongRTC.destroy()',为避免内存泄露,使用该方法后,已初始化的所有功能模块将失效
RCRTCAdapter.destroy()
              
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13

Room

//Room 模块初始化方式不变
const room = new Room({ id, ...options })

// 加入房间时不再需要传参
room.join(/*{ id: 'userId' }*/)
              
已复制
1
2
3
4
5

Stream

// Stream 模块初始化方式不变
const stream = new Stream({ ...options })

// 发布资源时不再需要传递当前用户 id
stream.publish({ /*id: '',*/ stream: { tag, type, mediaStream }})

// 发布小流时,需先保证发布了大流数据
stream.publish({ stream: { tag, type, mediaStream, size }})

// 取消发布资源时不再需要传递当前用户 id
stream.unpublish({ /*id: '',*/ stream: { tag, type }})

// 切换大小流 不再需要传递 stream.type 字段
stream.resize({
  id: '',
  stream: {
    tag: '',
    size: StreamSize.MAX,
    // type: StreamType.AUDIO_AND_VIDEO
  }
})
              
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Monitor

new Monitor({
  stats ({ sender, received }) {
    // 废弃 sender.packetsLost

    // 以下为单个流状态数据的改动
    // const track: ITrackStat = sender.tracks[0]

    // 废弃:track.trackState
    // 废弃:track.codecImplementationName
    // 废弃:track.googFirsReceived
    // 废弃:track.googPlisReceived
    // 废弃:track.googNacksReceived
    // 废弃:track.googRenderDelayMs
    // 废弃:track.trackReceived
    // 废弃:track.samplingRate
    // 废弃:track.googCodecName
  }
});
              
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

功能清单

RCRTCAdapter

  • ✅ StreamType

  • ✅ StreamSize

  • ✅ Mode

  • ✅ ROLE

  • ✅ LiveType

  • ✅ LayoutMode

  • ✅ RenderMode

  • ✅ Resolution

  • ✅ RongRTCVideoFps

  • ✅ StorageType

  • ✅ addPublishStreamUrl()

  • ✅ removePublishStreamUrl()

  • ✅ setMixConfig()

Device

  • ✅ constructor()
  • ✅ get()

Monitor

  • ✅ constructor()

Report

  • ✅ constructor()
  • start() - RCRTCAdapter 中 Report 模块无需再调用 start 方法

Message

  • ✅ constructor()
  • ✅ send()

Storage

  • ✅ constructor()
  • ✅ set()
  • ✅ get()
  • ✅ remove()
文档反馈
意见反馈

您的改进建议

意见反馈

问题类型

联系我们

提交工单

技术支持|集成使用|产品方案


商务咨询

7 x 24 小时

为您解答方案与报价问题

131 6185 6839

文档反馈