SDK构成
互动直播SDK由两部分构成,IMSDK和AVSDK
其中IMSDK为云通信SDK,为AVSDK提供账号登录、信令通道、IM弹幕消息、日志模块、日志上报等功能;
AVSDK提供摄像头采集、编码、解码、美颜等一系列功能(下图为AVSDK整体框架)
登录交互逻辑
1.App登录业务服务器,做用户身份业务方鉴权
2.业务服务器验证成功后,根据用户身份,使用私钥加密用户身份信息后生成UserSig返回给客户端
3.将UserSig传给IMSDK的login接口,完成腾讯云服务器登录
创建房间交互逻辑
创建房间交互流程如下:
1.主播向业务服务器请求创建房间
2.业务服务器分配房间号
3.主播使用分配的房间号调用AVSDK创建房间接口完成创建
4.通知业务服务器创建房间完成
观众进入房间交互逻辑
在主播完成房间创建后,业务直播平台已经有当前正在直播的房间列表。观众在登陆后可以看到该房间列表点击后进入房间,可发IM消息或者业务逻辑通知给其他已经在看的观众和主播。详细流程图如下:
注意:AVSDK不提供观众进入直播间通知,且不维护房间成员数及列表,可使用IMSDK实现或业务自行实现(见示意图虚线部分)
观众主播IM消息交互逻辑
观众正在欣赏主播表演同时,可以和主播进行IM互动,进行聊天、送花和送礼物等其它操作
当观众需要进行送花、送礼物等计费相关操作时,有两种方案可供选择
- 观众送花,由互动直播云回调业务后台,进行扣费
- 观众送花,由App上行请求至直播平台,完成扣费操作后,直播平台通过IMSDK REST API接口发送该消息
当直播间内成员较多时,较大消息量可能会引起主播性能问题,业务侧需要优化渲染策略,同时互动直播云(IMSDK)可控制消息频率
观众退出房间交互逻辑
观众退出房间时,也需要通知给主播和其它的观众,相关流程可参考观众进入房间交互逻辑
主播退出房间交互逻辑
当主播退出房间时,需做以下几件事情
- 通知业务直播平台,直播间销毁
- 通知其它的观众,主播已退出
- 显示直播结束页(展示直播时长、直播热度等)
流程图如下:
视频连麦
连麦功能是腾讯云互动直播SDK在直播场景下推出的特色功能,可供主播和某一(多)观众进行视频连线,相互交流,其它的观众可看到主播和被邀请的观众的音视频画面(映客、聚美优品等App均实现了该功能)
可下载随心播进行体验,并可参考随心播封装代码(Android下载、iOS下载)
上麦的实现流程如下:
注意
- 邀请A上麦需要发点多点的消息(可使用云通信IMSDK的单聊消息,用CustomElem实现
- 一定要在A完成上麦(开麦克风、摄像头,上传本地画面)完成后,再发送上麦广播通知
- 上麦广播通知可使用云通信的群消息(CustomElem)实现
下麦的实现流程如下:
注意
- 主播和观众A下麦都需要考虑(代码中要做好保护)
- 下麦的广播通知和下麦者关闭本地视频上传可同时进行(但建议先发出下麦通知,再关闭本地画面)
开发注意事项(必读)
- 观众人数过多时,消息量也会随之增多,需注意主播端性能,常见因渲染代码过多导致CPU飙升卡顿
- 主播可能因为某种原因(CRASH、断网等)掉线,业务直播平台需增加主播心跳,实现直播列表的实时更新
- 互动直播不提供房间成员管理等操作,需业务直播平台自行实现,或采用IMSDK方案