直播抽奖功能(互动功能接收端JS-SDK)

news2024/12/25 9:05:56

功能概述

本模块主要用于处理抽奖相关的逻辑,可以对抽奖开始和抽奖结束等事件进行监听以及提交观众中奖信息,接入方可以根据这些事件流程定制自己的UI界面。

抽奖--效果截图

 

抽奖--效果截图

 

初始化及销毁

在实例化该模块并进行使用之前,需要对SDK进行初始化配置,详细见参考文档。

在线文件引入方式

// script 标签引入,根据版本号引入JS版本。  
<script src="https://websdk.videocc.net/interactions-receive-sdk/0.14.5/lib/polyv-ir.umd.js"> </script>
<script>
const { Lottery } = window.PolyvIRSDK;  </script> 

import 方式引入(推荐)

import { Lottery } from '@polyv/interactions-receive-sdk';   
const lotterySdk = new Lottery();  
// ...  
// 销毁 SDK 实例,清除逻辑  
lotterySdk.destroy();

使用流程

监听"开始抽奖"事件

当讲师、助教等发起端,发起一轮抽奖时,lotterySdk.events.LotteryStart 事件会被触发。接入方可以在此时将抽奖中等提示字样或者动效展示出来,让用户感知到抽奖已经开始。

lotterySdk.on(lotterySdk.events.LotteryStart, function() {
  // 处理开始抽奖
  alert('抽奖开始');
});

监听 "抽奖中" 事件

发起抽奖时,可能有部分观众未进入对应直播房间,因此错过即时的事件。
接入方需要监听 lotterySdk.events.OnLottery 事件,这样后进入的观众同样可以得知当前有进行中的抽奖,并将对应的状态显示出来。

lotterySdk.on(lotterySdk.events.OnLottery, function() {
  // 处理开始抽奖
  alert('抽奖进行中');
});

监听 "抽奖结束" 事件

当发起端结束一轮抽奖时,lotterySdk.events.LotteryEnd 事件会被触发,同时该事件有对应场次抽奖中的个人获奖信息、兑换码、领奖信息等内容,可以监听该事件并展示对应的中奖结果和领奖信息填写表单。

lotterySdk.on(lotterySdk.events.LotteryEnd, function(msg) {
  alert(`抽奖 id: ${msg.lotteryId}`, `是否中奖: ${msg.isWinner}`, `奖品名称:${msg.prize}`, `领奖信息:${msg.collectInfo}`);
});

展示抽奖结果

在"抽奖结束" 事件中,已经可以获取到该场次的抽奖结果。此外,抽奖 SDK 还提供了一些方法获取更多的信息。

  1. 分页获取中奖人列表
    const data = await lotterySdk.getWinnersList({
      pageNumber: 1,
      // 抽奖 id 可以在“抽奖结束”事件 LotteryEnd 的参数中获取
      lotteryId: 'lotteryId',
    })
    // 当前页码,总页数,中奖者列表
    const { pageNumber, totalPages, contents } = data;
    

    获取个人在特定场次的所有中奖记录

  2. // 中奖记录列表。可传参数 { channelId, sessioId, userId },若不传则按照初始化配置参数去获取数据
    const data = await lotterySdk.getLotteryRecord();
    

注意:可以在页面及抽奖模块初始化完成后,即调用此方法,便于获取用户在当前场次的中奖情况

提交获奖者信息

根据 “抽奖结束” 事件或者中奖记录接口得到的信息,展示获奖信息表单,用户填写完成后,可以使用以下接口,将信息提交至系统后台。

await lotterySdk.submitInfo({
  sessionId: 'sessionId',
  lotteryId: 'lotteryId',
  winnerCode: 'winnerCode',
  receiveInfo: [{ field: '', value: '' }],
});

注意

如果不需要再使用抽奖SDK时,请调用SDK实例的destroy方法去销毁实例。

 我的文章推荐:

  • [视频+图文] 线上研讨会是什么,企业对内对外培训可以用线上研讨会吗?
  • [图文] 企业直播对网络带宽有什么要求?
  • [图文]OBS如何实现毫秒级超低延时直播
  • 直播播放器API(播放器调用方法、参数、接口和事件)
  • 企业内训课程视频加密防下载是如何做的?10种思路
  • 超低延迟/无延迟直播(PRTC Web SDK移动端)兼容性说明
  • html5视频播放器代码调用实例(视频切换\倍速切换)
  • 企业直播要如何做?硬件设备、网络环境有哪些要求?
  • 企业内训课程视频加密防下载是如何做的?10种思路

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/618203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Shell脚本:for循环

shell脚本-for循环 一、for循环&#xff1a;1.格式&#xff1a;2.实操&#xff1a;3.类c语言&#xff1a; 一、for循环&#xff1a; 1.格式&#xff1a; &#xff08;1&#xff09;for 已知的循环次数场景 for 变量名 in 【 名称范围 】 do 命令序列&#xff08;执行内容&…

Vue+springboot美发美容化妆品产品商城系统

不同的游客可以注册成为用户&#xff0c;然后可以查看&#xff0c;搜索自己想买的美发产品&#xff0c;加入购物车&#xff0c;下订单&#xff0c;收货&#xff0c;确认付款等购物流程。前台和后台的分析使得该系统结构清晰&#xff0c;即包含管理员和用户两个最基本的实体&…

C++递推基本概念和基础知识

目录 一、递推的概念 什么是递推算法&#xff1f; 解决递推问题的一般形式 二、递推和递归的区别 三、递推的实例 一、递推的概念 什么是递推算法&#xff1f; “递推”是计算机解题的一种常用方法。利用“递推法”解题首先要分析归纳出“递推关系”。如经典的斐波那契数…

MIT 6.824 lab distributed system 分布式系统(1)----lab1 MapReduce

https://youtu.be/cQP8WApzIQQ 概念 为什么需要分布式系统&#xff1f; high performanceparallelism&#xff1a;分布式系统可以实现CPU、内存、硬盘的并行运行fault tolerancephysical&#xff1a;security / isolated 分布式系统的困难 concurrency&#xff1a;各个并行的…

【观察】金融行业决策智能化“换挡提速” 华为全球智慧金融峰会2023值得期待...

当前以数字化、智能化为特征的第四次工业革命正“扑面而来”&#xff0c;数字经济浪潮对各行各业都产生着深刻影响。其中&#xff0c;金融行业作为现代经济的核心&#xff0c;也面临着一系列重大的挑战和机遇。 相比于其他企业&#xff0c;金融行业依靠数据分析和智能决策更好地…

某公司招了一个大专生,候选人要一万月薪,HR给申请一万二,HR领导说:给一万三!...

无良公司看多了&#xff0c;不禁让人怀疑&#xff1a;这个世界上还有好公司和好hr吗&#xff1f; 来看看这位hr的故事&#xff1a; 最近我们招了一个大专生&#xff0c;5年经验。他的工资是7000&#xff0c;候选人想要10000&#xff0c;我给申请了12000&#xff0c;结果审批不通…

用于分析脉冲类信号的二阶瞬态提取变换研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【TCP/IP】基于TCP的服务器端/客户端 II - 迭代服务器/客户端的概念与实现

1. 迭代服务器端/客户端 1.1 迭代服务器实现 1.2 迭代回声服务器端/客户端 2 回声客户端存在的缺陷 1. 迭代服务器端/客户端 在此之前&#xff0c;让我们先补充一个“回声服务器/客户端”的概念。回声&#xff08;echo&#xff09;服务器/客户端是指服务器端将客户端传输的字…

干货 | 郭晓雷:数智安全监管机制研究与思考

作者&#xff1a;郭晓雷本文约4300字&#xff0c;建议阅读8分钟 本文报告的主要内容关于数据安全&#xff0c;从学术或者技术的角度&#xff0c;更多地认为人工智能是数据处理的新技术&#xff0c;其应用会产生更加丰富的数据处理活动场景。 郭晓雷&#xff1a;今天报告的主要内…

【U8+】用友U8查询出库汇总表没有“计量单位”列

【问题描述】 在用友U8软件中&#xff0c; 查询存货核算模块下的【出库汇总表】后&#xff0c; 没有【计量单位】列&#xff0c; 但是汇总依据中&#xff0c;可以明显看到是包含“计量单位”的。 【解决方法】 首先明确一点&#xff0c;在查询条件中的【汇总依据及排序方式】…

可再生能源的不确定性和储能系统的时间耦合的鲁棒性和非预期性区域微电网的运行可行性研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

4.Python高频函数—数据分割split()

这里是针对dataframe 的数据的列中的字符串进行分割、分列&#xff0c;首先需要先用.str将这一列转换为类似字符串的格式&#xff0c;然后再使用split()方法。 Part.1 split()函数 根据分隔符或正则表达式对字符串进行拆分&#xff1b;返回数据框&#xff08;DataFrame&#x…

位运算总结

位运算 有符号整数无符号整数位移运算 1计算机中数字的表示 计算机只有0&#xff0c;1两个数字&#xff0c;所以我们常用的10进制计算 所以我们需表示10进制 要使用二进制来表示10进制数 进制表示法 我们假设一个 8 位的数据类型 方案1 2&#xff1a;0000 0010 我们会发现…

FPGA 的数字信号处理:Verilog 实现简单的 FIR 滤波器

该项目介绍了如何使用 Verilog 实现具有预生成系数的简单 FIR 滤波器。 绪论 不起眼的 FIR 滤波器是 FPGA 数字信号处理中最基本的模块之一&#xff0c;因此了解如何将具有给定抽头数及其相应系数值的基本模块组合在一起非常重要。因此&#xff0c;在这个关于 FPGA 上 DSP 基础…

FPGA驱动FT601实现USB3.0通信测速试验 提供工程源码和QT上位机源码

目录 1、前言2、FT601芯片解读和时序分析FT601功能和硬件电路FT601读时序解读FT601写时序解读 3、我这儿的 FT601 USB3.0通信方案4、vivado工程详解5、上板调试验证6、福利&#xff1a;工程代码的获取 1、前言 目前USB3.0的实现方案很多&#xff0c;但就简单好用的角度而言&am…

【见微知著】Android Jetpack - Navigation的架构设计

前言&#xff1a;人总是理所当然的忘记&#xff0c;是谁风里雨里&#xff0c;一直默默的守护在原地。 前言 Navigation 作为 Android Jetpack 组件库中的一员&#xff0c;是一个通用的页面导航框架。为单 Activity 架构而生的端内路由导航&#xff0c;用来管理 Fragment 的切换…

使用IDEA使用Git:Git使用指北——实际操作篇

Git使用指北——实际操作 &#x1f916;:使用IDEA Git插件实际工作流程 &#x1f4a1; 本文从实际使用的角度出发&#xff0c;以IDEA Git插件为基座讲述了如果使用IDEA的Git插件来解决实际开发中的协作开发问题。本文从 远程仓库中拉取项目&#xff0c;在本地分支进行开发&…

数据结构-Redis(一)

Redis除了性能强外&#xff0c;还有数据结构丰富多彩。 一、String 单值缓存 SET key value GET key 存对象 相信大家都存过&#xff0c;我们一般都是把对象value转json&#xff0c;获取的时候&#xff0c;再json转对象 SET user:1 value(json值) 但当我们需要对对象某…

推荐一款可匹敌国际大厂的国产企业级低无代码平台

文章目录 前言&#xff1a;亟待转型的软开创业者什么是低/无代码居高不下的企业级软件搭建成本1. 开发周期较长2. 在需求明确、软件修改、系统集成等方面存在多种卡点3. 数据管理混乱 无代码/低代码开发&#xff0c;时代的潮流无代码平台 smardaten1. smardaten 简介2. smardat…

ATK-MD0096-V21使用手册

ATK-0.96’ OLED_V2.0(V2.0 是版本号&#xff0c;下面均以 OLED 表示该产品)是 ALIENTEK 推出的一款高性能 OLED 显示模块&#xff0c;&#xff0c;尺寸小巧&#xff08;27mm26mm&#xff09;&#xff0c;结构紧凑&#xff0c;模块通过一个28P的排针与外部连接。 8080并口模式…