开放平台
平台概述
开发者文档
  • API文档
  • SDK文档
  • 接入指南
  • 集成方案
产品功能
  • 新手入门
  • 产品功能
常见问题首页
平台概述
开发者文档
  • API文档
  • SDK文档
  • 接入指南
  • 集成方案
产品功能
  • 新手入门
  • 产品功能
常见问题首页
  1. 菜单
  • DEMO示例
  • JS SDK
    • web 点播 sdk
      • 更新记录
      • 点播上传SDK
    • web 观播 sdk
      • 产品介绍
      • 快速接入
      • 对接示例
      • 观看直播
      • 文档白板
      • 互动连麦
      • 暖场视频
      • 全局事件
      • 全局错误码
      • 房间消息说明
      • 版本更新记录
      • 互动工具
        • 互动-抽奖
        • 互动-礼物
        • 互动-签到
        • 互动-问卷
        • 互动-公告
        • 互动-商品
        • 互动-问答
        • 互动-推屏卡片
        • 互动-快问快答
        • 互动-聊天
        • 互动-优惠券
        • 互动-点赞
      • 直播间拓展功能
        • 资料下载
        • 观看限制验证
        • 观看协议
        • 回放章节
  • iOS SDK
    • 整体介绍
    • 快速接入
    • SDK 登录
    • 暖场视频
    • 视频轮询
    • 直播彩排
    • 高级美颜
    • 云导播
    • 观看协议
    • 文档白板演示
    • 聊天功能
    • 视频直播
      • 发起视频直播
      • 观看视频直播
    • 互动直播
      • 观众互动
      • 推流摄像头
      • 互动直播API
      • 主播发起互动直播
      • 嘉宾加入互动直播
    • 无延迟直播
      • 主播发起无延迟直播
      • 观众观看无延迟直播
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-章节打点
      • 互动-公告
      • 互动-商品
      • 互动-计时器
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-优惠券
      • 互动-点赞
    • 直播间拓展能力
      • 直播间特色功能配置项
      • 文件下载
      • 修改角色昵称
      • 观看权限校验
      • 投屏
      • 虚拟人数
    • 观看回放
      • 观看回放
    • 防录屏
      • 跑马灯
    • 字段说明
      • 互动活动详情字段
      • 错误码说明
      • 常量定义
      • 活动详情字段说明
    • 版本更新说明
      • 版本更新信息
      • v2.3.0 到 v2.4.0 升级说明
      • v3.0.1 到 v3.2.0 升级说明
      • V2.9.0到v3.0.1升级说明
      • v6.3.0
      • v6.2.1
      • v3.2.0 到 v4.0.1
      • v2.7.0 到 v2.8.0、v2.9.0 升级说明
      • 6.5.0
      • v5.0.x 到 v6.0.0
      • v6.4.0
  • Adroid SDK
    • 整体介绍
    • 快速接入
    • SDK登录
    • 暖场视频
    • 视频轮巡功能
    • 直播彩排
    • 高级美颜
    • 云导播功能
    • 观看协议
    • 文档白板
    • 聊天功能
    • 房间消息
    • 信息采集说明
    • 视频直播
      • 发起视频直播
      • 观看视频直播
    • 互动直播
      • 互动直播API
      • 主播发起互动直播
      • 嘉宾加入互动直播
      • 观众观看互动直播
    • 无延迟直播
      • 主播发起无延迟直播
      • 观众观看无延迟直播
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-公告
      • 互动-商品
      • 互动-计时器
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-优惠券
      • 互动-点赞
    • 直播拓展功能
      • 修改角色名称
      • 文件下载
      • 投屏演示
      • 虚拟人数
      • 观看权限校验
      • 直播间特色功能配置项
    • 观看回放
      • 观看回放/点播
    • 防录屏
      • 直播水印
      • 跑马灯
    • 字段说明
      • 房间消息字段说明
      • 聊天消息字段说明
      • 活动详情字段说明
    • 更新记录
      • 更新记录
    • 版本更新说明
      • v6.4.0
      • v6.3.0
      • v6.2.3
      • v6.2.1
      • v6.2.0
      • v6.1.0
      • v6.0.0
      • v5.0.0
      • v4.1.0
      • v4.0.0
      • v3.3.0
  • Harmony SDK
    • 整体介绍
    • 快速接入
    • SDK初始化
    • 登录&登出
    • 活动基础信息
    • 观看协议
    • 观看权限校验&预约
    • 开屏海报
    • 暖场视频
    • 观看直播
    • 观看回放/点播
    • 聊天
    • 房间消息
    • 在线人数&热度
    • 文档/白板
    • 版本更新
    • 私聊
    • 播放器错误码
    • 互动工具
      • 互动-问答
      • 互动-问卷
      • 互动-公告
      • 互动-抽奖
      • 互动-签到
      • 互动-计时器
      • 互动-礼物
      • 互动-互动有礼
      • 互动-快问快答
      • 互动-口令红包
      • 互动-推屏卡片
      • 互动-商品
      • 互动-优惠卷
      • 互动-观看有礼
      • 互动-点赞
    • 防录屏
      • 播放器水印&跑马灯
    • 菜单
      • 自定义菜单
      • 文件下载
      • 概要总结
      • 回放列表
      • 邀请卡
  • 微信小程序 SDK
  • 相关协议
    • 微吼直播 SDK 隐私政策
    • 微吼直播 SDK 开发者使用规范
  1. 菜单

回放列表

回放列表#

直播结束后会将活动生成回放,一个房间可以有多个回放。通过回放列表接口可以获取当前直播的所有回放列表。

关键方法#

方法方法描述
VHSaaSDK.getInstance().getWatchList回放列表

接口API#

  public getWatchList(webinar_id: number, callback: VHWatchListCallback)

接口入参#

参数名称是否必须示例备注
webinarId是398887625活动id
callback是xxxVHWatchListCallback

接口使用示例#

加载回放列表
import { VHSaaSDK, VHWebinarData,
  VHWebinarRecordWatch } from "@vhall/vhall_live";
import { JSON } from "@kit.ArkTS";
import { BasicDataSource } from "../../util/LazyDataSource";
import { ToastUtil } from "../../action/ToastUtil";
import { emitter } from "@kit.BasicServicesKit";


export class RecordDataSource extends BasicDataSource<VHWebinarRecordWatch> {
  private listener: VHWebinarRecordWatch[] = [];

  notifyDataReload(): void {
    super.notifyDataReload();
  }

  totalCount(): number {
    return this.listener.length
  }

  getData(index: number): VHWebinarRecordWatch {
    return this.listener[index]
  }

  updateData(newList: VHWebinarRecordWatch[]): void {
    this.listener = [...newList];
    this.notifyDataAdd(this.listener.length - 1);
  }
}

@Component
export struct VHRecordListView {
  @Require  pageInfos: NavPathStack // 导航
  @Require webinar:VHWebinarData;
  private  highlightDataSource: RecordDataSource = new RecordDataSource();
  aboutToAppear(): void {
    VHSaaSDK.getInstance().getWatchList(this.webinar?.webinar?.id!,{
      onSucceed: (data: VHWebinarRecordWatch[]) => {
        //获取回放列表,懒加载显示回放内容
        this.highlightDataSource.updateData(data);
      },
      // 失败
      onFailure: (errorCode: number, errorMsg: string) => {
        ToastUtil.showToast("getAIWatch:" + errorMsg);
      }
    });
  }



  @Builder
  VodItem(item: VHWebinarRecordWatch) {
    Row({ space: 10 }) {
      Image(item.img_url)
        .width('112vp')
        .height('63vp')
        .objectFit(ImageFit.Cover)
        .borderRadius(4)

      Column({ space: 10 }) {
        Text(item.name)
          .fontColor(item.id.toString() == this.webinar.record?.record_id ? Color.Red: Color.Black)//如果是当前活动高亮显示
          .maxLines(2)
          .width("60%")
          .textOverflow({ overflow: TextOverflow.Ellipsis })
        Row({ space: 10 }) {
          Text(item.duration)
            .fontColor(item.id.toString() == this.webinar.record?.record_id ? Color.Red: Color.Black)
            .maxLines(2)
            .width("60%")
            .textOverflow({ overflow: TextOverflow.Ellipsis })
        }.justifyContent(FlexAlign.Start)
      }.justifyContent(FlexAlign.Start)
      .alignItems(HorizontalAlign.Start)
    }
    .width('90%')
    .margin(10)
    .padding(10)
    .backgroundColor("#EEDCDCDC")
    .borderRadius(6)
  }

  build() {
    List() {
      LazyForEach(
        this.highlightDataSource,
        (item: VHWebinarRecordWatch) => {
          ListItem() {
            this.VodItem(item)
          }.onClick((event) => {
            // 当前页面的返回操作
            let callback: Callback<emitter.EventData> = (eventData: emitter.EventData) => {
              console.info(`eventData: ${JSON.stringify(eventData)}`);
            }
            // 接收端事件,跳转到活动. 初始接口是需要携带此回放id
            let eventData: emitter.EventData = {
              data: {
                recordId: item.id.toString()
              }
            };
            emitter.emit("turn_to_record", eventData);
            this.pageInfos.pop();
          })
        },(item: VHWebinarRecordWatch) => `${item.id}_${item.duration}` // 用URL+时间确保唯一性
      );
    }
    .height('100%')
    .alignListItem(ListItemAlign.Center)
    .backgroundColor('#FDF5E7')
    .sticky(StickyStyle.Header) // 设置吸顶,实现粘性标题效果
  }
}

VHWebinarRecordWatch 数据#

修改于 2025-11-18 03:18:32
上一页
概要总结
下一页
邀请卡
Built with