迁移指南
QNRTC Web SDK 4.x 是一个全量重构版本,简化了接口调用逻辑,提高了接口的易用性,提供了更友好的事件监听机制。
概览
在 4.x 版本 SDK 中,我们提供了 QNRTC 和 QNRTCClient 两个类来管理房间和音视频流的采集、发布、订阅等操作。
- QNRTC 主要负责处理 SDK 全局配置以及本地音视频 track 的创建采集等房间无关的操作。
- QNRTCClient 主要负责处理房间的加入、离开,音视频 track 的发布、订阅等房间交互相关的操作。
上述管理方式的改动将影响到 SDK 的主要交互流程,若您需要升级,可以参考 RTC 4.x 使用指南 的使用姿势分模块进行更新。
设备管理
track 的定义及使用方式
在 4.x 版本 SDK 中,我们细化了音视频 track 的分类,基于不同类型的 track 提供了不同的控制接口,新版本的 track 对本地 track 和远端 track 做了区分,继承结构定义如下:
v4.x 版本除了对音视频 track 的结构进行了调整,还将部分 track 的操作接口从 deviceManager
移到了 track 上。
对从本地采集的角度来说,在 QNRTC 对象中提供了采集本地 track 的方法:
- createCameraVideoTrack
- createMicrophoneAudioTrack
- createMicrophoneAndCameraTracks
- createBufferSourceAudioTrack
- createScreenVideoTrack
- createCustomAudioTrack
- createCustomVideoTrack
对订阅远端的媒体流来来说,当远端发布时,本地可以通过监听 QNRTCClient 上的 user-published
事件来获取远端媒体流 QNRemoteTrack 对象。当订阅成功之后,可以获得对应的 QNRemoteAudioTrack 和 QNRemoteVideoTrack 对象。
房间管理
在 4.x 版本中,创建房间对象需要调用 QNRTC 类的静态方法 createClient
来创建 QNRTCClient 房间对象。下面来看如下使用该对象来管理房间。
首先是加入和离开房间。可以通过 join 和 leave 方法来加入/离开房间,可以通过监听 user-joined 和 user-left 事件来判断远端用户是否加入/离开房间。
然后是发布和取消发布 Track。可以通过 publish 和 unpublish 方法来发布和取消发布 Track,可以通过监听 user-published 和 user-unpublished 事件来获取远端用户的发布/取消发布信息。
最后是订阅远端的 Track。可以通过 subscribe 和 unsubscribe 方法来实现订阅/取消订阅远端用户发布的 Track。