用户直播

业务场景

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) => {
    // 直播失败
  },
});

参数说明

入参

参数名称类型说明备注
extensionstring用户的角色信息 RoleInfo,这个信息会在直播结束后推送到游戏服务端必传
querystring设置观众从直播间打开小游戏的 query可选

直播结束后,服务端直播数据推送服务端接入文档-微信直播信息

  • 微信直播数据推送 eventData
    字段类型必需说明
    feedIdstring直播 id
    descriptionstring直播主题
    startTimestring开播时间戳,单位:秒
    endTimestring关播时间戳,单位:秒
    totalCheerCountstring主播收到的喝彩总数
    totalAudienceCountstring直播间总观众人数
    liveDurationInSecondsstring直播总时长,单位:秒
    extensionstring拓展参数,用户开播时 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 去重处理】