网易云信直播竞答解决方案
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Quiz-Client-Android
Quiz-Client-Windows
Quiz-Client-iOS
Quiz-Server-AppServer
LICENSE
README.md

README.md

网易云信直播竞答解决方案介绍

1 方案概述

网易云信直播竞答解决方案DEMO,是面向直播答题场景,如HQ、冲顶大会等APP的应用场景,包装网易云信直播、IM、聊天室能力,并将场景的主要逻辑结合起来的演示DEMO。用户可以通过下载体验直播竞答DEMO,了解直播竞答场景涉及到的主要流程和交互逻辑。开发者通过体验DEMO和阅读DEMO源码,了解直播竞答类APP中云信能力的集成方式和细节,以及主要业务逻辑的搭建。

本DEMO分三端。PC端演示了主播侧的功能需要。包含创建房间,直播推流、问题控制下发、答案下发、宣布答题中奖结果等操作流程。iOS和Android端演示了用户侧的功能需要。包含进入房间、观看直播、答题、查看答案、复活、聊天等功能。

2 方案架构

  • 主播端通过摄像机或摄像头连接PC推流应用进行直播推流
  • 推流拉流由视频云进行分发。拉流需要通过http-flv协议进行拉流
  • 题目由运营人员通过出题页面事先录入,存储在后台
  • PC推流应用需要周期性调用SDK接口"获取当前同步时间戳" ,汇报给后台,后台维护本地时间和推流时间戳的对应关系
  • 出题时,后台通过本地时间和推流时间戳的关系推算出当前题目时间戳
  • 后台收到题目/答案下发请求后,通过聊天室的 "高优先级消息" 实时下发题目
  • 用户侧播放端收到题目以后,通过题目中的同步时间戳和拉流的当前同步时间戳确定题目和流的延迟误差,通常题目的时间大于流的时间,确定在多久以后弹出题目或答案等信息;也可以在播放器的回调中实时对时,在播放器的时间与题目的时间一致时弹出题目或答案
  • 答题端将答题结果上报给后台,后台对答题结果进行汇总统计,并将结果返回给主播查看。

3 场景功能介绍

3.1 主播端场景功能介绍

在直播竞答解决方案中,主播端主要承担直播推流、触发问题下发控制信息、触发答题控制信息等功能。

主播端推荐通过PC应用实现,需要集成PC v2.5.0及以上版本的推流SDK。安装主播端的PC机一般架设在演播控制室。摄像机经由采集卡、导播台与PC机连接。采集卡用以将模拟摄像机、录像机、LD视盘机、电视机输出的视频信号等输出的视频数据或者视频和音频的混合数据输入电脑,推荐采购decklink mini recorder 4k。硬件导播台主要承担绿幕抠像,场景片花的植入等功能。

视频信号进入推流应用预览无误后,由主播端进行推流。推流过程中,主持人发出听题指令时,主播端需要即时发送问题下发的控制信息。后台手按动请求后,通过聊天室的 "高优先级消息" 实时下发题目。由于推流端、后台、拉流端使用统一的时间轴信息,因此可以保障每个用户均可在看到主持人发出指令时,弹出题目或答案。

网易云信直播竞答解决方案DEMO,演示了主要的功能,供开发者参考。

3.2 用户端场景功能介绍

在直播竞答解决方案中,用户端主要承担直播拉流、回答问题、聊天等功能

用户侧推荐通过iOS和android应用实现。需要集成iOS/Android v1.4.6以上版本的播放器SDK。进入房间的用户分两类权限,答题权限和观战权限。答题权限的用户必须在第一道题目下发前进入房间,且答题过程中未答错或已复活;否则用户降级为观战权限。

用户侧播放端收到题目以后,通过题目中的同步时间戳和拉流的当前同步时间戳确定题目和流的延迟误差,通常题目的时间大于流的时间,确定在多久以后弹出题目或答案等信息;也可以在播放器的回调中实时对时,在播放器的时间与题目的时间一致时弹出题目或答案。以此来保障直播与问答的同步。

网易云信直播竞答解决方案DEMO,演示了主要的功能,供开发者参考。

4 相关能力开发文档参考

5 Q&A

Q: 整个场景中,哪些是云信提供的能力,哪些需要开发者自行完成?

A: 云信提供的能力有:

  • PC/iOS/Android 提供 "同步时间戳" 能力的推流 SDK
  • iOS/Android 提供 "同步时间戳" 能力的拉流SDK
  • 用于发送高优先级聊天室消息的服务端 API
  • iOS/Android 用于接收题目和结果等消息、及观众发送弹幕消息的聊天室 SDK

客户需要自行实现的功能包括:

  • 答题服务器的搭建,包含与主播和客户端之间的交互
  • 出题后台页面,用于工作人员方便地准备题目
  • 用户侧页面交互逻辑,包含问题展示、复活逻辑、提现逻辑等
  • 演播室的搭建
  • 特殊的应用玩法,如组团答题等

解决方案DEMO演示了主要流程的简单实现方式,开发者可以作为参考。

Q: 直播竞答场景中需要的推、拉流参数和协议有什么要求?

A: 推流推荐设定540*960(竖屏)的清晰度,码率建议在600~900kbps。拉流播放请通过http-flv协议。

Q: 直播竞答推荐哪些端?

A: 目前我们推荐通过PC端推流,iOS、Android播放的方式实现。

Q: 如何保障问题下发过程中消息不丢失?

A: 答题服务器收到题目/答案下发请求后,发送题目或答案自定义消息时,通过聊天室的 "高优先级消息" 实时下发。

如有更多问题可向我们咨询。