消息回放

更新时间:
复制 MD 格式

直播结束后,您可以在观看回放时加载直播间互动消息、弹幕等。

消息回放接口

提供直播结束后在观看直播回放时,加载直播过程中的弹幕等功能。

说明
  1. 使用该接口,无需加入对应的消息群组。只需要完成登录即可使用。

  2. 单个客户端调用该接口的频次为2次/秒,超出的调用会被拒绝。单次最多返回100条(PageSize最大为100)。建议仅获取弹幕类消息。

  3. 建议在直播过程中避免使用此接口,以确保直播的流畅性和稳定性。

//该接口主要用户直播结束后的历史消息回放,用户无需进入群组可查询,比较耗时,在直播过程中不建议使用,另外该接口后续会收费。
ImListHistoryMessageReq req = new ImListHistoryMessageReq();
req.groupId = "群ID";
req.nextPageToken = 231231;  //不传时表示第一页,遍历时服务端会返回下一页Token,客户端获取下一页时应带上
req.type = 99999;            // 自定义消息类型,需大于10000
req.sortType = ImSortType.ASC;
req.pageSize = 20;
req.beginTime = 0; // 按时间范围遍历,开始时间,单位:秒,为0时表示最早时间
req.endTime = 0;   // 按时间范围遍历,结束时间,单位:秒,为0时表示最晚时间
messageInterface.listHistoryMessage(req, new ImSdkValueCallback<ImListHistoryMessageRsp>() {
    @Override
    public void onSuccess(ImListHistoryMessageRsp rsp) {
    }
    @Override
    public void onFailure(Error error) {
    }
});

典型场景:录播回放时按时间戳触发事件

将消息回放接口与播放器回调结合,实现按时间戳触发事件(如弹窗)。

  1. 推流端发送自定义消息时,记录事件时间戳到业务数据库。

  2. 播放端调用listHistoryMessage接口,传入beginTime和endTime按时间范围查询历史消息。

  3. 播放端通过播放器 SDK 的onTimeUpdate回调获取当前播放进度时间。

  4. 将播放时间与查询到的消息时间戳比对,匹配时触发业务逻辑(如弹窗)。

说明

beginTime、endTime单位为秒,0 表示最早/最晚,与现有listHistoryMessage示例参数说明保持一致。