用户直播

业务场景

C 端用户都可以直播,只要开通了自己的直播号且游戏申请了直播相关功能

适用范围: 微信小游戏,文档参考

流程图

接口介绍

/**
* 检查用户是否有直播权限以及用户设备是否支持直播
* 【H5】小游戏
*/
SDKManager.gameLive.checkGameLiveEnabled();

/**
* 查询当前直播状态
* 【H5】小游戏
*/
SDKManager.gameLive.getGameLiveState();

/**
* 开始直播
* 【H5】小游戏
*/
SDKManager.gameLive.startGameLive(Object startGameLiveParams);

/**
* 设置当前直播的角色数据
* 【H5】小游戏
*/
SDKManager.gameLive.setGameLiveExtension(String extension);
/**
* 打开当前游戏的直播专区【直播广场】
* 【H5】小游戏
*/
SDKManager.gameLive.openChannelsLiveCollection(Object openChannelsLiveParmas)

调用示例

// 直播中判断
const isLive = SDKManager.gameLive.getGameLiveState();
// 直播权限判断
const isAble = SDKManager.gameLive.checkGameLiveEnabled();

// 开始直播
const startGameLiveParams = {
  extension: JSON.stringify({ roleId: xxx, serverId: xxx }),
  onSuccess: () => {
    // 开始成功
  },
  onFailed: (errorInfo) => {
    //  开始失败
  },
};

if (!isLive && isEnabled) {
  // 用户一键直播【需要touchend】
  SDKManager.gameLive.startGameLive(startGameLiveParams);
}

// 打开直播广场
const openChannelsLiveParmas = {
  openIds: [],
  onSuccess: () => {
    // 成功
  },
  onFailed: (errorInfo) => {
    //  失败
  },
};
SDKManager.gameLive.openChannelsLiveCollection(openChannelsLiveParmas);

参数说明

入参 startGameLiveParams

参数名称类型说明备注
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 去重处理】