web 直播&礼物赠送------腾讯云(四)
直播项目搁置了将近1年,以为都搁浅了,没想到头头又提起来了,这次直播技术更替为了腾讯云,消息系统没变,采用的依然是融云,新增了礼物赠送功能。
项目完成基本就是这样子:

一,播放器
由阿里云转腾讯云,web这边基本没有什么变化,也就是更换个播放器,不过腾讯云直播的效果确实比阿里云强一些(仅从画面上,其他的深层次就不是我能去谈论的了)。
var tcPlayer = new TcPlayer('tx-video', {
"m3u8": 'xxx', //请替换成实际可用的播放地址(m3u8)
"autoplay" : false, //iOS下safari浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的
"live": true,
"coverpic" : "xxxxxx", //你的封面图片地址
"width" : '100%',//视频的显示宽度,请尽量使用视频分辨率宽度
"height" : '100%',//视频的显示高度,请尽量使用视频分辨率高度
"controls": 'none',
"systemFullscreen": true,
"x5_player": true,
"x5_type": "h5",
"x5_fullscreen": "true"
});
几点建议:
1. 自动播放建议关闭,这样可以让所有机型保持统一
2. 因为是在微信中做直播,所以要实现全屏效果需要打开X5同层(具体大家可以去搜X5同层协议,这里就不妨传送门了,请原谅我的懒惰)
二,关于ios与android区别问题
在wx里,ios与android打开视频同层,ios正常,而android会隐去原本在上方的标题栏,此处处理方式为监听wx给出的事件
<video id=“myVideo".../>
//进入全屏
myVideo.addEventListener("x5videoenterfullscreen", function(){ alert("player enterfullscreen"); }) //退出全屏
myVideo.addEventListener("x5videoexitfullscreen", function(){
alert("player exitfullscreen");
})
然而在项目中,发现并触发不了 - -!
还好有另一个监听:
window.onresize = function(){
myVideo.style.width = window.innerWidth + "px";
myVideo.style.height = window.innerHeight + "px";
}
通过这个我们能够监听到屏幕的变化(仅在安卓端判断即可)
三,赠送礼物:
赠送礼物考虑到并发问题,最终决定使用融云消息推送,具体如何注册消息,监听消息大家可以查看我之前的随笔。
赠送礼物其实就是点击礼物,通过融云发送礼物消息,里面带着用户信息,用户头像,礼物个数就ok了,是不是很简单,其实里面还是有不少坑的。(可是我们wx端只负责接收,不用做赠送礼物,具体问题就靠小伙伴们自己挖掘啦)!!!
四,接收礼物
接收礼物(连击礼物)这里,起先我们是每次用户点击送礼物都会发送一条消息,然后来做反显,最后实现出来后发现其中逻辑比较复杂,在考虑到消息丢失的可能性,最后采用了当礼物连击结束后统一将信息发送给各端来处理。
这里我的处理方式是:
1. 创建一个正在进行动画的队列(限制其中最多只能有3个动画进行)
2. 创建一个等待动画的队列
在消息进来时,判断正在进行动画的队列是否有空的位置,如果有的话则插入,没有的话则放入等待队列(先进先出),在动画队列中的每一条动画结束后去查询等待队列中是否有数据,有的话则插入动画队列。
听着简单,但实现起来还是有一些复杂的,本人代码比较乱,就不贴出来了,有什么问题可以留言,会第一时间回复的。
动画方面建议使用css3,使用js动画在一些配置低的手机上会有些许卡顿。
上一篇:
web 直播&即时聊天------阿里云、融云(三)
web 直播&礼物赠送------腾讯云(四)的更多相关文章
- 怎样将本地web项目部署到腾讯云服务器上?
怎样将本地web项目部署到腾讯云服务器上? 1.本地计算机的工作: (1).用eclipse新建一个web项目,然后在webcontent下新建一个index.html,然后在本地部署到Tomcat服 ...
- 【手把手教程】uniapp + vue 从0搭建仿斗鱼虎牙直播App:腾讯云MLVB移动直播实践连麦PK+带货
基于uniapp + vue 实现仿斗鱼虎牙腾讯云移动直播应用实践,实现以下功能 1: 用户登陆 2: 房间管理 3: 房间聊天 4: 直播美颜 5: Svga礼物动画 6: 一对一连麦观众 项目开发 ...
- web 直播&即时聊天------阿里云、融云(三)
经过前面的知识,基本已经把聊天室的功能搞定了,剩下的就是直播的问题了... 一如既往,阿里云的web demo也是少的可怜,只有一个web播放器(Prismplayer),所以这里主要就此播放器踩的坑 ...
- ***腾讯云直播(含微信小程序直播)研究资料汇总-原创
这段时间抽空研究了下直播技术,综合比较了下腾讯云直播的技术和文档方面最齐全,现把一些技术资料和文档归集如下: 1.微信小程序移动直播入门导读 https://cloud.tencent.com/doc ...
- EasyNVR结合阿里云/腾讯云CDN实现微信/小程序直播的方案
背景需求: 许多客户有这样的需求:微信公众号做为平台来对摄像机进行直播:可以让用户随时随地打开公共号就可以观看:保证画面的流畅性:保证视频的并发访问量等. 问题分析: 虽然需求看似很简单,其实真正实现 ...
- uni-app + Cloudbase——uni-app 项目中如何使用腾讯云开发后端服务
1 基本介绍 uni-app 是一个基于 Vue.js 的跨端开发框架,一套代码可以发布到 App.小程序.Web 等不同平台 腾讯云开发平台 Cloudbase 提供的 @cloudbase/js- ...
- 腾讯云服务器手动和自动安装WordPress网站程序
如果我们需要建站的话,对于基础个人网站.博客建站选择基础的1Mbps带宽配置的1GB内存的腾讯云服务器还是够用的,且如果我们需要用来建网站的话可以手工添加程序,以及有些面板,比如宝塔面板是自带CMS程 ...
- 如何用Baas快速在腾讯云上开发小程序-系列1:搭建API & WEB WebSocket 服务器
版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/221059001487422606 来源:腾云阁 h ...
- 腾讯云点播视频存储(Web端视频上传)
官方文档 前言 所谓视频上传,是指开发者或其用户将视频文件上传到点播的视频存储中,以便进行视频处理.分发等. 一.简介 腾讯云点播支持如下几种视频上传方式: 控制台上传:在点播控制台上进行操作,将本地 ...
随机推荐
- HDU - 3533 bfs [kuangbin带你飞]专题二
看了好久的样例才看懂. 题意:有一个人要从(0,0)走到(n,m),图中有k个碉堡,每个碉堡可以向某个固定的方向每隔t秒放一次炮,炮弹不能穿越另一个碉堡,会被阻挡.人在移动的过程中不会被炮弹打到,也就 ...
- windows NLB实现MSSQL读写分离--从数据库集群读负载均衡
主从模式,几乎大部分出名的数据库都支持的一种集群模式. 当Web站点的访问量上去之后,很多站点,选择读写分离,减轻主数据库的的压力.当然,一主多从也可以作用多个功能,比如备份.这里主要演示如何实现从数 ...
- JavaScript的预编译和执行
JavaScript引擎,不是逐条解释执行javascript代码,而是按照代码块一段段解释执行.所谓代码块就是使用<script>标签分隔的代码段. 整个代码块共有两个阶段,预编译阶段和 ...
- Linux基础四
vim编辑器 vi编辑器的增强版,语法高亮等扩展功能 vim三种工作模式 a,i,o等键输出模式 命令模式,输入模式,末行模式 模式间的切换 a:当前行插入 i:当前行插入 o:全新一行插入 :键末 ...
- SQL 脚本持续收集...
1.复制表 ---sqlserver (包括表结构和表数据) SELECT * INTO TABEL_NEW FROM TABLE_OLD---sqlserver(只复制表结构)CREATE TABL ...
- 笔记+R︱信用风险建模中神经网络激活函数与感知器简述
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 本笔记源于CDA-DSC课程,由常国珍老师主讲 ...
- VC获取并修改计算机屏幕分辨率
//获取分辨率 int m_nWindwMetricsX = ::GetSystemMetrics(SM_CXSCREEN); int m_nWindwMetricsY = : ...
- mpeg文件格式分析
MPEG-1流比特层次结构分析总结 1.简要介绍Mpeg 2.Mpeg-1数据流分析 2.1视频序列层(VideoStream) 2.2画面组层(GOP) 2.3画面层(Pictures) 2.4片层 ...
- C# 利用Newtonsoft.Json进行Json序列化与反序列化
我们可以通过DataContractJsonSerializer类来序列化一个对象为json字符串. public class JsonConvert<T> { public static ...
- spring ioc(反转控制)
在Java中,我们建立一个对象的方式是new,有时需要单例,有时需要工厂,而spring中的bean的定义可以直接使用,如scope属性single产生单例对象,prototype产生新对象,bean ...