用户直播
业务场景
C 端用户都可以直播,只要开通了自己的直播号且游戏申请了直播相关功能
适用范围: 微信小游戏,文档参考
流程图
接口介绍
// 检查用户是否有直播权限以及用户设备是否支持直播
checkGameLiveEnabled(): boolean
// 查询当前直播状态
getGameLiveState(): boolean
// 开始直播
startGameLive(info: EworldSDK.StartGameLiveConfig): void
// 设置当前直播的角色数据
setGameLiveExtension(extension: string): void
调用示例
// 直播中判断
const isLive = SDKManager.getGameLiveState();
// 直播权限判断
const isAble = SDKManager.checkGameLiveEnabled();
// 小游戏内主动发起直播,开发者可在游戏内设置一键开播入口
SDKManager.startGameLive({
extension: JSON.stringify(this.getRoleInfo()),
onSuccess: () => {
// 直播成功
},
onFailed: (err) => {
// 直播失败
},
});
参数说明
入参
参数名称 | 类型 | 说明 | 备注 |
---|---|---|---|
extension | string | 用户的角色信息 RoleInfo,这个信息会在直播结束后推送到游戏服务端 | 必传 |
query | string | 设置观众从直播间打开小游戏的 query | 可选 |
直播结束后,服务端直播数据推送:服务端接入文档-微信直播信息
- 微信直播数据推送 eventData
字段 类型 必需 说明 feedId string 是 直播 id description string 是 直播主题 startTime string 是 开播时间戳,单位:秒 endTime string 是 关播时间戳,单位:秒 totalCheerCount string 是 主播收到的喝彩总数 totalAudienceCount string 是 直播间总观众人数 liveDurationInSeconds string 是 直播总时长,单位:秒 extension string 是 拓展参数,用户开播时 CP 侧传入的 extension
错误码
值 | 说明 |
---|---|
-1 | 未知错误 |
1 | 无权限 |
2 | 正在直播,不允许开播 |
3 | 视频通话冲突,不允许开播 |
4 | 相机冲突,不允许开播 |
FAQ
Q: extension 必须设置吗
A: 为避免无法识别开播的是哪个角色,这里建议设置,如果游戏内部不分角色,可传空字符
Q: 如果用户通过右上角的三个点,一键开播,会怎样
A: SDK 内部会监听直播状态,无论是否通过 StartGameLive 开播
Q: 如果用户开播的时候,还没有角色信息怎么办
A: 可以通过 SetGameLiveExtension 接口,在角色登录之后调用;如果没有调用,SDK 会以该用户最近一次的角色登录数据为准,如果该规则与运营设计有出入,请按需使用
Q: 调用 StartGameLive 失败,该用户有直播权限
A: StartGameLive 接口需要用户产生点击行为后才能调用
Q: 直播中,用户异常关闭直播会怎样,例如杀掉小游戏,关闭微信等
A: 用户如果异常关闭,当场直播信息会丢失,请提前告知用户;【如果微信记录中有异常关闭直播的数据, SDK 会在用户每次登录的时候,获取最近 3 场直播的数据,重新推送,服务端请根据 feedId 去重处理】