本文源自对即构科技高级研发工程师吴彪在ZEGO LIVE 直播课堂上分享内容的整理。
今天,我将以即构科技为例,给大家分享一下在线娃娃机产品具体是如何实现的,希望能够给大家一些指引。
ZEGO在线抓娃娃硬件方案
图 1如图 1,我们可以看到,一套完整的在线娃娃机硬件方案包含:2个摄像头、娃娃机整机(天车、硬件板子、娃娃机主板)。硬件的详细功能介绍如下:
1. 2个摄像头,用于采集娃娃机的实时场景。
2. 硬件板子(Android开发版),可以像普通的安卓手机一样运行Android程序,比如我们要在娃娃机上推2路视频流,首先我们可以开发一个简单的Android程序集成ZEGO SDK,然后使用ZEGO API实现推2路视频流的功能,最后把这个Android程序刷到硬件板子上运行就可以了。
3. 娃娃机主板,是控制娃娃机的核心部件。硬件板子(Android开发版)上运行的Android程序负责接收远程指令(前移、后移、左移、右移、抓娃娃等),并将远程指令转换成“串口指令”通过串口写入娃娃机主板,就可以远程控制娃娃机了。
ZEGO在线抓娃娃产品架构图
图 2如图 2 所示,整个架构包含客户端、娃娃机、客户业务后台及ZEGO云后台。
客户端主要功能有用户注册、登陆、充值、拉流观看(ZEGO API)、上机操作、展示结果等。
客户业务后台由客户自行开发、维护,主要功能有用户注册、登陆、充值、娃娃机状态管理、用户排队等。
ZEGO云后台提供实时音视频和实时信令服务,以SDK的形式提供给开发者。
娃娃机包含娃娃机控制端(运行在Android开发板上的Android程序)和下位机(娃娃机主板)两部分,主要功能有推2路视频流(ZEGO API)、与业务后台通信、与下位机(娃娃机主板)通信。
ZEGO在线抓娃娃业务时序图
娃娃机控制端:运行在硬件板子(Android开发板)上的Android程序
下位机:娃娃机主板
图 3如图3,启动娃娃机后,整个系统按照如下步骤运行:
步骤1:娃娃机控制端主动到下位机查询娃娃机的状态(娃娃机是否启动、是否正常运行等)。
步骤2:娃娃机控制端将状态数据发送到业务后台,业务后台登记娃娃机信息,同时为娃娃机分配RoomID(标记娃娃机)。
步骤3:业务后台下发UserInfo(UserID、UserName)、RoomInfo(RoomID,步骤2中分配)、SreamInfo(StreamID)等信息到娃娃机控制端。
步骤4、5:娃娃机控制端使用步骤3下发的信息,调用ZEGO API登录房间、并推2路流到ZEGO云后台,紧接着ZEGO云后台发送“流创建成功”的回调到客户业务后台,客户业务后台记录各个房间的流状态。
步骤6、7:客户端注册、登录、充值、获取房间信息。
步骤8: 客户端调用ZEGO API登录房间、拉2路流实时围观。
步骤9、10、11、12、13:客户端预约上机并进行支付,并得到客户业务后台返回的支付结果。
步骤14、15:客户业务后台下发天车配置信息(抓力,抓力决定抓取概率)到娃娃机控制端,紧接着娃娃机控制端将天车配置信息转换成串口指令写入下位机,对娃娃机进行初始化。
步骤16:客户端调用ZEGO API切换低延迟视频(平均400ms),提升上机时的用户体验。
步骤17、18、19、20、21、22:客户端调用ZEGO API发送(前移、后移、左移、右移、抓娃娃)等操作指令(可使用json封装)到ZEGO云后台,紧接着ZEGO云后台下发操作指令到娃娃机控制端,然后娃娃机控制端将操作指令转换成串口指令写入下位机,操控娃娃机天车。
步骤23、24:娃娃机控制端从下位机获取本次抓取结果(是否抓到娃娃),并将结果返回给客户业务后台,紧接着客户业务后台返回确认信息到娃娃机控制端。
步骤25、26、27: 娃娃机控制端调用ZEGO API将本次抓取结果(可使用json封装)发送到ZEGO云后台,最后ZEGO云后台将结果推送到客户端进行展示。
备注:以上步骤中,使用到ZEGO API的部分,以及娃娃机控制端与下位机通信(串口协议通信)的部分,ZEGO官方都有文档及源码提供给开发者,详情见文末。
ZEGO能提供什么?客户需要做什么?
一、ZEGO能提供什么?
1、超低延时的实时音视频服务(400ms),全球无死角覆盖,花椒、映客、一直播等大型直播平台正在使用的服务。
2、百万级并发的实时消息系统。
3、娃娃机整套硬件方案(娃娃机整机,Android开发版)。
二、ZEGO的客户需要做什么?
1、开发客户端App(iOS、Android、H5)。
2、开发业务后台(用户注册、登录、充值、排队等)。
更多ZEGO在线抓娃娃详细文档
ZEGO在线抓娃娃DEMO体验
iOS版本: https://www.pgyer.com/ZhuaWaWa-iOS
安卓版本 https://www.pgyer.com/ZhuaWaWa-Android
ZEGO在线抓娃娃一站式解决方案详解及试用申请
https://www.zego.im/html/solution/wawaji.html
ZEGO在线抓娃娃源码示例和SDK集成指引
https://www.zego.im/html/document/#Application_Scenes/WaWaJiClient
网友评论