iOS直播SDK集成说明

前提说明

本项目支持版本: 支持最低系统版本为:ios11以上系统 支持最低机型设备为:iPhone6s以上设备 暂不支持ipad设备。

一、下载并引入SDK

下载到直播SDK的压缩包以后,解压开可以看到demo项目,把frameworks目录下的所有库拷贝到您的项目中

1、SDK中的framework说明

文件名 说明 必选
AudioEngineCore.framework
AVTangModule.framework
FlowCtrl.framework
GNetTangSDK.xcframework
GNetTangSDKIOSDesktop.framework
NIMNOS.framework
NIMSDK.framework
qsnd.framework
VideoEngineCore.framework
TwirlingCapture.framework
基础库
QSVideoKit.framework
TangRTCKit.framework
播放器
QSLiveSDK.framework 直播SDK
TangClientSDK.framework 云会议会中SDK;直播间举手连麦功能,可根据需求选择集成

截图中,去除.dsYM文件不用,其他Framework的内容都需要引用

2、添加依赖

添加以下依赖,这些依赖是云直播SDK相关的库必须要依赖的库

二、直播SDK快速集成

1、初始化

调用直播SDK中的接口:

QSLiveSDK.getShareInstance;

绑定连麦/会议功能,无需此功能可剔除TangClientSDK.framework(优化包体积大小)

2、进入和退出直播间

(1)进入直播间

接口:/// 通过SDK实现的落地页接口直接加入直播间/// @param liveReq 参数 (pcode必填)/// @param delegate 参数/// @param completion 加入直播间的结果回调-(void)joinLiveWithLiveReq:(QSLiveReq *)liveReq delegate:(id<QSLiveSDKProtocol>)delegate completion:(void(^)(BOOL succeed, NSError * _Nullable error))completion  

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

类名 参数 说明
QSLiveReq 见下面的详细说明 进入直播间需要传递的参数
https://developer.quanshi.com/cn/api/77 参数来自云直播详情接口
如果直播开启了白名单验证,进入直播间时需要传入手机号或邮箱,只有在白名单配置中的手机号或邮箱才能成功进入直播间
delegate 直播间状态、消息回调 可选择实现的代理方法:
//通知直播间关已闭
-(void)onExitLiveRoom;
//此时需要将直播间视图控制器从容器页面中移除(如:直播间开启小窗模式)
-(void)onDismissLiveRoom;
/// 进出直播间状态回调
- (void)onLiveStatusChanged:(QSLiveStatus)status;
completion 结果回调 succeed:YES 进入成功, NO 进入失败
error:进入直播间失败的具体信息

QSLiveReq参数详细说明

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

(2)显示直播间界面

在进入调用进入直播间成功后,此时需要将直播间视图控制器加入到容器页面中,否则无法展示出直播间界面

- (void)onShowLiveRoom:(UIViewController *)viewController;

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

QSLiveSDK提供了监听进出直播间状态的接口,可以实现下面的接口来监听状态回调。
进入直播间状态QSLiveStatus:{
QSLiveStatusNone, //默认
QSLiveStatusJoining, //正在进入
QSLiveStatusJoinFail, //进入直播间失败
QSLiveStatusJoined, //已进入直播间
QSLiveStatusLeaving, //正在退出直播间
QSLiveStatusLeft, //已退出直播间
QSLiveStatusCancel, //已取消进入直播间
}

接口:- (void)onLiveStatusChanged:(QSLiveStatus)status;