当video遇上微信浏览器

video在微信浏览器中的一些问题及解决方案

最近在做微信浏览器中的页面,由于客户需要常常需要内嵌或全屏播放视频。但是在实现过程中问题却是常有常新的。

1.html书写

这是最近做的一个全屏播放的案例(视频是竖版的),html代码如下:

<video id="video" src="http://yili.yowoworld.com/haier1213/video1.mp4" poster="http://yili.yowoworld.com/haier1213/poster.jpg" preload="auto" playsinline x-webkit-airplay webkit-playsinline x5-video-player-type="h5" x5-video-player-fullscreen="true" type="video/mp4" style="object-fit:fill;" width="100%" height="100%"></video>

给视频设置了以上属性,在ios和安卓手机中就都可以全屏播放了。

2.video属性设置说明

preload:预加载

playsinline / webkit-playsinline : 内联播放

x-webkit-airplay: 貌似是ios的无线播放

x5-video-player-type:启用同层H5播放器,就是在视频全屏的时候,div可以呈现在视频层上,也是WeChat安卓版特有的属性。

x5-video-player-fullscreen: 全屏设置。

在实现视频在微信中播放过程中,添加属性性和属性值要慎重,不能随便设置,设置过程中需要细细体会。

3.遇到的问题及解决方案

问题1:Android的微信里面,就算加上了这个属性(x5-video-player-fullscreen),还会出现上下有黑边,不能全屏的问题。

解决办法: 给video加上object-fit: fill;的style属性。

问题2: 当微信和手机设置的“允许屏幕旋转”同时开启时,在安卓手机中,视频不会跟随系统旋转,而在苹果手机中,视频跟随系统旋转,当旋转完,视频往往就不是满屏了。

解决办法:

window.onresize = function(){
  var width = window.screen.width;
  var height = window.screen.height;
  if(width>height){
    width = [height,height = width[0]];
    video.style.width = width + "px";
       video.style.height = height + "px";
  }
}

4.在全屏视频中添加元素

至于在全屏视频中添加元素,也是可以的。只要通过定位设置即可。通过监听视频的当前时间,来实现你想要的效果。

监听视频时间需要通过定时器来实现(定时器的时间根据项目实际需要自行定义)

setInterval(function(obj,t){
  if(obj.currentTime=t){   //可以不使用等号,条件自己看着来
    //满足当前条件时的相关事件
  }
},100)

5.相关链接

http://www.cnblogs.com/baiyygynui/p/6323565.html

http://www.genshuixue.com/i-cxy/p/15488790

https://segmentfault.com/a/1190000008452126

时间: 2024-08-02 15:00:03

当video遇上微信浏览器的相关文章

当饺子遇上微信

时下最流行的问候就是在微信中传自己的生活照片,等朋友圈的朋友来踩. 看到不少朋友秀自家年夜饭,感到亲切,亲近,时尚.想想微信容易暴露自家的生活方式,几次打消了自己也跟风的念头. 每年的大年初一我都会早起帮婆婆包饺子,今年也不例外.当我来到厨房时,看到婆婆已经包了许多饺子.婆婆事是一位很会持家的女人,吃苦耐劳,心灵手巧,像汽车上的润滑油那样,在我们这个大家庭中,不可缺少.我与婆婆很投缘的,平日里我是她厨房里最好的帮手,她把自己对儿女的爱,用美妙的热饭来体现. 初一吃传统的饺子,很有讲究,通常会在饺

微信浏览器安卓手机video浮在最上层问题

/*  http://blog.csdn.net/kepoon/article/details/53608190  */ //x5-video-player-type="h5" x5-video-player-fullscreen="true" <video id="video" src="http://200011112.vod.myqcloud.com/200011112_733d3cea0f8a11e7afae899fa40

解决微信浏览器内video全屏问题

前端离职,让我写个视频播放页面,木办法只有我来搞了. 默认用h5的 video标签 测试时候发现微信浏览器内访问video自动全屏播放. 搜了下 webkit-playsinline="true" playsinline="true" x-webkit-airplay="true" x5-video-player-type="h5" x5-video-player-fullscreen="true" x5-

当微信小程序遇上filter~

在微信小程序的开发过程中,当你想要实现不同页面间的数据绑定,却为此抓耳饶腮时,不妨让微信小程序与filter 来一场完美的邂逅,相信会给你带来别样的惊喜~ 前段时间被安利了一个很实用的公众号-前端早读课,它简洁.大方的页面和方便.实用的功能深深地吸引着我~(^U^)ノ 恰好这段时间学了小程序,就自己仿着写了个前端早读课的小程序. 实现的功能 不同页面间的数据绑定 随机显示数组里的元素 实时显示系统的日期 鼠标点击和页面跳转等基本功能 swiper组件和template样式模板的使用 使用easy

非微信图文网页,微信浏览器点击图片弹出自带图片浏览 (原创请勿转载)

微信图文网页点击插入的图片,会在微信的图片浏览器上浏览图片可以放大缩小,但是自己做的网页没有这个功能,下面我就来介绍一下这个功能,做出一个完美一点的demo.如果不想看过程直接到最后看demo... 教程需要:脚本编辑器(记事本或者是notepad++.DW都可以).jquery.js.微信浏览器作为测试 如下图效果 我们用到的是微信内置JsAPI的一个,这个函数在微信的开发者平台文档里我没有找到,是在网上搜到的. WeixinJSBridge.invoke('imagePreview',{  

js禁止微信浏览器下拉显示黑底查看网址,不影响内部Scroll

开发项目跑在微信浏览器经常会遇到一个问题,微信浏览器下拉的时候会出现自带的黑色底色(显示网址)如下图: 网上好多js禁止操作的做法禁止了内部Scroll,导致页面不能滚动,上拉加载失效,例如这种做法: $('body').on('touchmove', function (event) {event.preventDefault();}); or document.addEventListener('touchmove', function(e){e.preventDefault()}, fal

微信浏览器跳转页面后再返回,如何恢复到跳转前的位置的问题。

以商品列表页打比方, 众所周知,点击商品进入详情页要保证不损坏当前列表页状态的做法通常是在a标签上加上target=_blank进行新开一个窗口打开详情页 这个做法是非常普遍的,包括很多很多牛叉的网站都是这么玩的. 但是在微信浏览器里行不通  因为微信浏览器只有一个窗口   无论任何形式的跳转它都会销毁当前窗口的内容链接新的页面 所以不管是什么target=_blank啊还是什么history.go(-1)啊  统统都会强制刷新重新渲染页面 因为我是干PHP的,所以面对这个问题第一想到的就是用c

防止微信浏览器被整体拖动的方法

在微信网页开发中,我使用的页面结构是在body下的container覆盖全屏,container下有个header和page的容器,page负责显示所有内容并实现滚动. 结构如图: 但是遇到了一个问题:在页面已经滚动到顶部时,继续往下拖动page容器,会将微信浏览器整体往下拖,漏出"该网页由XXX提供"的提示,然后在安卓下,影响并不大,但是在iphone下,就没那么简单了,经过测试,在苹果下,往下拖动后快速滑动页面中的page,page并不会滚动,上拖同样遇到了这个问题,非常影响体验.

利用gulp解决微信浏览器缓存问题

做了好多项目,这次终于要解决微信浏览器缓存这个令人头疼的问题了.每次上传新的文件,在微信浏览器中访问时,总要先清除微信的缓存,实在麻烦,在网上搜罗了很多解决办法,终于找到了方法:利用gulp解决缓存问题.关于gulp大家可以去gulp官网去详细了解. 这篇文章主要参考于Gulp解决发布线上文件(CSS和JS)缓存问题和Gulp.js----比Grunt更易用的前端构建工具两篇文章,在这里先谢过原作者. 本文主要记录安装gulp以及使用.解决缓存问题的过程,以便日后方便查阅. 1.安装NodeJS