微信状态栏隐藏 HTML,完美解决微信video视频隐藏控件和内联播放问题
标签:定义 暂停 填充 参考 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视频隐藏控件和内联播放问题相关推荐
- 《转》完美解决微信video视频隐藏控件和内联播放问题
地址:https://blog.csdn.net/xiao190128/article/details/81025378 var u = navigator.userAgent; var isAndr ...
- “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。
"完美"解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来. 参考文章: (1)"完美"解决微信小程序购物车抛物动画,在连续点击时出现计 ...
- 完美解决微信js-sdk在IOS系统报invalid signature的问题
完美解决微信js-sdk在IOS系统报invalid signature的问题 作者原创,转载注明出处 一.解决方案 先说结论再说过程: (一)npm i jweixin-1.6.0 .系本人优化封装 ...
- Android 打造完美的侧滑菜单/侧滑View控件
概述 Android 打造完美的侧滑菜单/侧滑View控件,完全自定义实现,支持左右两个方向弹出,代码高度简洁流畅,兼容性高,控件实用方便. 详细 代码下载:http://www.demodashi. ...
- 记录下帮助一位网友解决的关于android子控件的onTouch或onClick和父OnTouch 冲突的问题。
记录下帮助一位网友解决的关于android子控件的onTouch或onClick和父OnTouch 冲突的问题. 参考文章: (1)记录下帮助一位网友解决的关于android子控件的onTouch或o ...
- python 请在微信客户端打开_完美解决 请在微信客户端打开链接
完美解决 请在微信客户端打开链接 背景描述 相信有模拟微信页面请求的测试都有看到过这个页面,简单点说就是爬虫爬微信页面,进行回放的时候会出现这个页面.大概在1年前,专门安排了一个人去解决这个技术问题, ...
- 微信开发 - 第三方网站接入微信登录、微信支付时,本地 redirect_uri 参数错误导致无法调试的解决方案(微信开放平台)完美解决每次都需要部署到线上测试,在本地使用本地 ip 就能轻松调试
问题描述 网上的教程都非常乱且无效,本文将站在新手的角度,超级详细的讲解. 本文提供 在微信开放平台,接入微信登录和微信支付时,本文无法调试 redirect_uri 回调错误 的解决方案, 仅需几个 ...
- ubuntu20 从wine安装到微信3的使用(解决微信乱码、无法输入)
ubuntu微信安装,综合了别人的方法,把我遇到的问题和解决方法贴上,以下进行了实测有效. 1.在ubuntu20上安装wine5或wine6 使用deepin-wine版的微信有点旧了.所以打算自己 ...
- 微信智慧支付日系统服务器崩溃,微信支付大面积出现故障 微信支付系统繁忙怎么解决 微信支付崩溃原因是什么...
10月29日晚间,微信支付突然大面积出现故障,支付时显示错误,商家扫码枪显示失败,美团外卖.京东商城.滴滴出行等支持微信支付的软件中,均显示暂不能使用微信支付.如果直接用微信支付扫码付款,也会出现&q ...
- php解决微信防盗链,PHP如何解决微信文章图片防盗链
微信对外提供了API接口,让我们可以通过授权的方式获取到自己公众号里面的文章 或者你也可以通过爬虫去抓取微信的文章 但是微信的图片默认是不允许外部调用的 解决微信文章图片防盗链 function ac ...
最新文章
- nginx proxy_next_upstream导致的一个重复提交错误
- Fishe向量Fisher Vecotr(二)
- 成功解决ValueError: too many values to unpack (expected 2)
- rejection from Cambridge Machine Learning and Machine Intelligence MPhil
- IsPostBack须要注意的地方,这些都不是POSTBACK动作
- LoftLoader Pro–功能丰富预加载WordPress插件
- sql基本语句返回值类型
- 身份认证协议攻击怎么解决
- 【机器学习算法】隐马尔可夫模型HMM(一)
- 【生存游戏】一组按序排列围成一圈的参赛选手,通过逢3退1游戏机制筛选出最后一个生存者的Java算法
- fdisk分区详解【适用于2T以内的新硬盘分区】
- 搭建一个完整的javaweb项目
- RabbitMq设置可视化界面
- MP4/MPEG4/3GP转换软件至尊---《MP4/RM转换专家》小记
- 机器人Scribit_Scribit墙壁绘图机器人:一款可以在墙上涂鸦和创作的机器人
- oracle 分页语句效率高,Oracle 10g SQL分页查询语句和效率分析
- 浅谈K8S的容器管理
- 画中画效果自由制作,视频、图片都可制作
- 号码认证一键免密登录,让验证更简单! 1
- ADATE320介绍