标签:定义   暂停   填充   参考   UNC   var   nim   ext   roi

众所周知,微信浏览器下的html5视频播放兼容性一直是很头疼的问题,其中两个最主要的问题是隐藏播放控件和内联播放,在ios系统下这两个功能还比较好实现,重点是在android端,今天就给大家提供一个比较特殊的方法。

先看一下html代码格式:

其中i标签是boostrap一个视频暂停icon,在这里是andriod自定义暂停控件。然后是video标签中的属性:

x5-video-player-type=”h5”,x5-video-player-fullscreen=”true”—这两个属性是叫做“同层播放器”,是微信andriod端特有的属性,有关这两个属性的文章请参考这里。

webkit-playsinline=”true”—这个属性是ios 10中设置可以让视频在小窗内播放,也就是不是全屏播放。

playsinline=”true”—ios微信浏览器支持小窗内播放。

因为没有加上controls属性,所以在ios端是没有播放控件的,如果在播放过程中想用到播放控件,可以在js中动态添加。

接下来是重点!也就是canvas标签:作用是将android端视频渲染到canvas,这样一来video标签的所有问题全部屏蔽。

canvas属性:width=”1920”,height=”1080”—大部分视频都是这个分辨率,如果不设置的话视频清晰度会降低或者失真。

接下来是js实现:

首先判断终端:

var u = navigator.userAgent;

var isAndroid = u.indexOf(‘Android‘) > -1 || u.indexOf(‘Adr‘) > -1; //android终端

var isiOS = !!u.match(/(i[^;] ;( U;)? CPU. Mac OS X/); //ios终端

andriod下:

if(isAndroid){

$("#video").hide();

$("i.fa").show();

}else{

$("i.fa").hide();

$("#canvas").hide();

}

video标签隐藏,自定义暂停控件显示;反之如果是ios端自定义控件和canvas标签隐藏。

1

接下来是canvas的绘制:

var videoanimate;

canvas = document.getElementById(‘canvas‘);

context = canvas.getContext( ‘2d‘ );

context.fillStyle = ‘#fff‘;

context.fillRect( 0, 0, canvas.width, canvas.height );//绘制1920*1080像素的已填充矩形。

var img=new Image();//新建一个图片,模仿video里面的poster属性。

img.src="video.png";

context.drawImage(img,0, 0,canvas.width,canvas.height);//将图片绘制进canvas。

function animate() {//渲染方法。

if(video.paused){//判断视频是否暂停,如果暂停显示控件。

$(".video i.fa").show();

}

context.drawImage(video,0, 0,canvas.width,canvas.height);//将视频当中的一帧绘制到canvas当中。

videoanimate = requestAnimationFrame( animate );//每秒60帧渲染页面。关于此方法具体解释请自行百度。

$("#canvas,i.fa").click(function(){

if(isAndroid){

animate();//在这里调用。

if(!video.paused){//判断视频时候暂停。

video.pause();

}else{

video.play();

$(".video i.fa").hide();

}

}

})

完美解决微信video视频隐藏控件和内联播放问题

标签:定义   暂停   填充   参考   UNC   var   nim   ext   roi

微信状态栏隐藏 HTML,完美解决微信video视频隐藏控件和内联播放问题相关推荐

  1. 《转》完美解决微信video视频隐藏控件和内联播放问题

    地址:https://blog.csdn.net/xiao190128/article/details/81025378 var u = navigator.userAgent; var isAndr ...

  2. “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。

    "完美"解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来. 参考文章: (1)"完美"解决微信小程序购物车抛物动画,在连续点击时出现计 ...

  3. 完美解决微信js-sdk在IOS系统报invalid signature的问题

    完美解决微信js-sdk在IOS系统报invalid signature的问题 作者原创,转载注明出处 一.解决方案 先说结论再说过程: (一)npm i jweixin-1.6.0 .系本人优化封装 ...

  4. Android 打造完美的侧滑菜单/侧滑View控件

    概述 Android 打造完美的侧滑菜单/侧滑View控件,完全自定义实现,支持左右两个方向弹出,代码高度简洁流畅,兼容性高,控件实用方便. 详细 代码下载:http://www.demodashi. ...

  5. 记录下帮助一位网友解决的关于android子控件的onTouch或onClick和父OnTouch 冲突的问题。

    记录下帮助一位网友解决的关于android子控件的onTouch或onClick和父OnTouch 冲突的问题. 参考文章: (1)记录下帮助一位网友解决的关于android子控件的onTouch或o ...

  6. python 请在微信客户端打开_完美解决 请在微信客户端打开链接

    完美解决 请在微信客户端打开链接 背景描述 相信有模拟微信页面请求的测试都有看到过这个页面,简单点说就是爬虫爬微信页面,进行回放的时候会出现这个页面.大概在1年前,专门安排了一个人去解决这个技术问题, ...

  7. 微信开发 - 第三方网站接入微信登录、微信支付时,本地 redirect_uri 参数错误导致无法调试的解决方案(微信开放平台)完美解决每次都需要部署到线上测试,在本地使用本地 ip 就能轻松调试

    问题描述 网上的教程都非常乱且无效,本文将站在新手的角度,超级详细的讲解. 本文提供 在微信开放平台,接入微信登录和微信支付时,本文无法调试 redirect_uri 回调错误 的解决方案, 仅需几个 ...

  8. ubuntu20 从wine安装到微信3的使用(解决微信乱码、无法输入)

    ubuntu微信安装,综合了别人的方法,把我遇到的问题和解决方法贴上,以下进行了实测有效. 1.在ubuntu20上安装wine5或wine6 使用deepin-wine版的微信有点旧了.所以打算自己 ...

  9. 微信智慧支付日系统服务器崩溃,微信支付大面积出现故障 微信支付系统繁忙怎么解决 微信支付崩溃原因是什么...

    10月29日晚间,微信支付突然大面积出现故障,支付时显示错误,商家扫码枪显示失败,美团外卖.京东商城.滴滴出行等支持微信支付的软件中,均显示暂不能使用微信支付.如果直接用微信支付扫码付款,也会出现&q ...

  10. php解决微信防盗链,PHP如何解决微信文章图片防盗链

    微信对外提供了API接口,让我们可以通过授权的方式获取到自己公众号里面的文章 或者你也可以通过爬虫去抓取微信的文章 但是微信的图片默认是不允许外部调用的 解决微信文章图片防盗链 function ac ...

最新文章

  1. nginx proxy_next_upstream导致的一个重复提交错误
  2. Fishe向量Fisher Vecotr(二)
  3. 成功解决ValueError: too many values to unpack (expected 2)
  4. rejection from Cambridge Machine Learning and Machine Intelligence MPhil
  5. IsPostBack须要注意的地方,这些都不是POSTBACK动作
  6. LoftLoader Pro–功能丰富预加载WordPress插件
  7. sql基本语句返回值类型
  8. 身份认证协议攻击怎么解决
  9. 【机器学习算法】隐马尔可夫模型HMM(一)
  10. 【生存游戏】一组按序排列围成一圈的参赛选手,通过逢3退1游戏机制筛选出最后一个生存者的Java算法
  11. fdisk分区详解【适用于2T以内的新硬盘分区】
  12. 搭建一个完整的javaweb项目
  13. RabbitMq设置可视化界面
  14. MP4/MPEG4/3GP转换软件至尊---《MP4/RM转换专家》小记
  15. 机器人Scribit_Scribit墙壁绘图机器人:一款可以在墙上涂鸦和创作的机器人
  16. oracle 分页语句效率高,Oracle 10g SQL分页查询语句和效率分析
  17. 浅谈K8S的容器管理
  18. 画中画效果自由制作,视频、图片都可制作
  19. 号码认证一键免密登录,让验证更简单! 1
  20. ADATE320介绍

热门文章

  1. 如何分析软件安全性需求
  2. 程序员的悲哀是什么?
  3. 二维最大类间方差阈值分割的快速迭代算法
  4. 朗强科技讲解:HDMI分配器的作用与使用方法
  5. 亚马逊测评自养号教程
  6. 从培训机构出来的程序员,后来都怎么样了?
  7. 第五次作业 刘惠惠 自动生成的方法存根
  8. python编写程序计算梯形面积公式_肿么用c语言编写程序梯形面积
  9. 单火线智能开关设计笔记
  10. FDTD Solutions初学笔记