关于如何在微信里面让video不全屏播放。
来源:互联网 发布:iroha 知乎 编辑:程序博客网 时间:2024/06/05 00:31
最新解决方法,可点击这里查看。
最近做一个HTML5的活动页面,需要在页面内播放视频,并有交互动作。之前,可以在video标签内写上 webkit-playsinline 属性就可以不全屏播放,但是现在在部分Android手机和小屏的iPhone上已经失效了,看了下优酷和土豆,在Android上播放都默认全屏打开。据说在腾讯自家域名以及在白名单内的网站(比如前段时间很火的吴亦凡HTML5以及最近的穿越故宫来看你),视频可以不全屏播放。
这里有个腾讯X5专区的提问:关于微信内video标签播放视频自动全屏的提问
如果在页面内放一个隐藏的video,然后video播放再通过canvas渲染出来,看起来的确可以,但是在部分手机上video只要一播放,还是会全屏打开,而且在Android设备,video播放会置顶与任何标签之上, 所以这个方法依然不行。
方案一、通过jsmpg插件来解码video,但是这个插件好像只能解码mpeg的格式视频,而且还有一些文件编码限制,具体点击这里查看github。通过测试,在Android和ios设备均可播放,而且jsmpg提供了几个实用的Api, 不过通过js去解码视频,可能会很消耗性能。
var canvas = document.getElementById('canvas');var player = new jsmpeg('fox.mpg', { canvas: canvas, loop : true});01.
02.
03.
04.
05.
点击播放
方案二、将视频切出一张张的图片帧,然后通过canvas去渲染,不过这个方法,只适合简短的视频,超过几分钟,加载图片的数量将是可怕的,但是兼容性依然不错的,在Android和ios设备均可播放。并且可做交互。
点击播放
var imgArr = [],source = {},now2 = 0,imgNum = 0,timer=null;var canvas2 = document.querySelector('#canvas2');var videoBox = document.querySelector('.videoBox');var view = {w : videoBox.offsetWidth,h : videoBox.offsetHeight}canvas2.width = view.w;canvas2.height = view.h;var ctx = canvas2.getContext("2d");ctx.clearRect(0,0,canvas2.width,canvas2.height);//添加图片进数组function pushImgArr (num) { document.querySelector('#loadWrap2').style.display = 'block'; imgArr = []; for( var i = 0;i < num;i++ ) { imgArr.push('videoImg/'+i+'.jpg'); }; imgLoad ();};//图片加载function imgLoad(){ source['src'+now2] = new Image(); source['src'+now2].src = imgArr[now2]; source['src'+now2].onload = function(){ now2 ++ ; if( now2 > imgArr.length-1 ){ //加载成功 document.querySelector('#loadWrap2').style.display = 'none'; //执行canvas渲染 movieInit() }else{ //递归加载 imgLoad(); }; };}; //canvas图片渲染function movieInit (){ clearInterval(timer); timer = setInterval(function(){ if( imgNum == imgArr.length ){ clearInterval(timer); }else{ ctx.clearRect(0,0,canvas2.width,canvas2.height); ctx.drawImage(source['src'+imgNum],0,0,view.w,view.h); imgNum++; }; },60);};//按钮点击开始播放document.querySelector('.playBtn2').onclick = function(){ pushImgArr(77);};原文地址: http://itakeo.com/blog/2016/07/07/videoinline/?none=12301.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
0 0
- 关于如何在微信里面让video不全屏播放。
- 关于如何在微信里面让video不全屏播放《2》。
- html5 video标签在IOS里面默认全屏播放问题
- 微信内置浏览器 如何小窗不全屏播放视频?
- VIDEO标签在微信浏览器内播放会自动全屏
- H5 video标签在移动端,不默认全屏播放。
- 让video在div中铺满全屏
- 关于微信浏览器video标签无法播放mp4视频
- HTML5新标签video在iOS上默认全屏播放
- HTML5新标签video在iOS上默认全屏播放
- Android h5全屏播放video
- html5 video播放调研,全屏,伪全屏
- ios,安卓实现video小屏播放,不全屏播放的方法
- 手机浏览器(微信浏览器)不全屏播放视频的方法
- 微信视频全屏播放--测试
- 微信video标签全屏无法退出bug
- 解决微信浏览器video全屏的问题
- 微信开发H5 video 视频在ios可以播放但是在android手机上无法播放或者黑屏
- 待研究
- 多播demo
- 对于容器map的使用---map::value_type
- java输出扭曲验证码
- Hibernate的批量更新和删除
- 关于如何在微信里面让video不全屏播放。
- 用velocity代替jsp作为程序视图展示
- https原理:证书传递、验证和数据加密、解密过程解析
- Java封装
- 笔试面试算法经典--二叉树的镜像-递归与非递归实现(Java)
- 表单划过变换颜色
- NYOJ983 首尾相连数组的最大子数组和 + NYOJ754 蚂蚁的难题(二) (思路题)
- nginx原理介绍
- 功能强大的js选项卡