快速上手

一、前提条件

  • DevEco Studio 5.0.2 Release 或以上版本
  • 本项目支持版本: 支持最低系统版本为:5.0.2(14)

创建项目并引入SDK

创建HarmonyOS项目

  • 打开DevEco Studio 并点击Create a new project。
  • 输入项目名称(Product Name)、API版本(Compatible SDK)、设备类型(Device Type)Phone等项目信息,并点击Finish。

获取SDK

  • SDK接口以har形式提供

导入SDK

  • 找到livesdk.har包,导入程序中
  • 依赖:livesdk.har中的dependencies说明 "@ohos/ijkplayer": "^2.0.5", "@nimsdk/base": "^10.8.10", "@nimsdk/chatroom": "^10.8.10", "@nimsdk/nim": "^10.8.10"
  • 在oh-package.json5中,添加dependencies (目前只支持本地依赖方式) "dependencies": { "livesdk":"file:../livesdk" }

二、直播SDK快速集成

1、初始化

我们支持两种初始化方式,以满足您的集成需求:

初始化方法一:

QSLiveSDK.init()

初始化方法二: 倘若您需要延迟进行初始化操作(隐私合规需求),可以使用QSLiveSDK.config()与QSLiveSDK.lateinit()配合使用。

QSLiveSDK.config() 注意:必须在Application的onCreate()方法中调用,该方法不会有性能损耗。

QSLiveSDK.lateinit() 注意:该方法无初始化作用域限制。

2、进入和退出直播间

(1)进入直播间

接口:QSLiveSDK.joinLive(req: QSLiveReq, callback: (resultCode: Int) -> Unit)

需要传递的参数定义在QSLiveReq类中

类名 参数 说明
QSLiveReq 见下面的详细说明 进入直播间需要传递的参数
https://developer.quanshi.com/cn/api/77 参数来自云直播详情接口
如果直播开启了白名单验证,进入直播间时需要传入手机号或邮箱,只有在白名单配置中的手机号或邮箱才能成功进入直播间
callback 进入直播状态回调 0为成功,非0见下面的详细说明

QSLiveReq参数详细说明

参数 说明 必传
userName 姓名。 在直播间中显示或在云会议会中显示的姓名 是。倘若audienceJoinUrl如果有user相关信息会覆盖
pcode 直播码 否。与audienceJoinUrl 必二选一
meetingCode 会议密码
conferenceId 会议ID
audienceJoinUrl 观众链接 否。与pcode 必二选一
email 邮箱 否。倘若开启了直播白名单验证,则需要传入
phone 手机号 否。倘若开启了直播白名单验证,则需要传入
countryCode 国家码。如果手机号有别的国家码,需要传入,不要带+加号,如:中国传86 否。与phone字段配合使用,如果不传phone字段,也不要传该字段
company 机构名或公司名
avatar 头像URL,在云会议会中展示
extUserId 第三方用户系统的userId,主要用于统计

resultCode参数详细说明

返回码 说明
0 成功
-1 参数缺失
-1000 网络请求异常
10111 当前用户其他端在线(设备冲突)
10112 当前用户其他会在线(会议冲突)
10202 该直播不存在
50701 直播密码错误
56001 不在白名单内

(2)退出直播间

接口:QSLiveSDK.exitLive()接口。

注意:该接口在直播间页面销毁时自动调用,默认情况下可以不调用此接口。

(3)监听直播间进出状态

QSLiveSDK提供了监听进出直播间状态的接口,可以实现下面的接口来监听状态回调。注意,状态监听的添加与移除需要配对调用,且与具体的某一场直播无关。

// 添加状态监听QSLiveSDK.addLiveRoomListener(listener: QSLiveRoomListener)// 移除状态监听QSLiveSDK.removeLiveRoomListener(listener: QSLiveRoomListener)interface QSLiveRoomListener {   /**    * 进出直播间状态回调    *    * 1、在调用QSLiveSDK.joinLive()接口时,回调 JOIN 状态    * 2、在直播间loading消失后, 回调 JOINED 状态    * 3、在调用退出直播间接口时,回调 LEAVING状态    * 4、在直播间界面消失后,回调LEFT状态    */    fun onLiveStatusChanged(status: QSLiveRoomStatus)    /**      * 直播间信息变更,会在加入直播成功后提供直播间信息       */    fun onLiveRoomInfoChanged(info: QSLiveRoomInfo)     /**     * 画中画回调      */    fun onPicInPicChange(isPicInPic: Boolean)     /**       * 直播带货回调 [context]加入直播时的context对象 [info]直播带货商品信息      */       fun onBuyProduct(context: Context, info: LiveGoods) }enum class QSLiveRoomStatus {    /** 正在进入 */    JOIN,    /** 取消 */    CANCEL,    /** 进入直播间成功 */    JOINED,    /** 正在退出直播间 */    LEAVING,    /** 退出直播间 */    LEFT}