今天在做一个分享页面的时候需要播放视屏用了video,然后各种坑开始了:

  <video src="http://xxx.mp4 " id="myVideo" poster=“XXX”  controls></video>

安卓微信 内:播放全屏并且定位在视屏上的一些东西也不见了?于是接入了同层

  <video src="http://xxx.mp4 " id="myVideo" poster=“XXX” controls x5-video-player-type="h5" x5-video-player-fullscreen="true" ></video>

  注:  x5-video-player-type、x5-video-player-fullscreen属性需要在播放前设置好,播放之后设置无效

  此时视屏上的一些东西看见了,但是$(window).width();$(window).height()设置后不能铺满整平,同层播放的时候呢出现上下黑边,

  折腾了一番用了screen.width ; screen.height

  此时进入同层的时候能够全屏播放了,但是呢页面刚进入未播放时候出现了滚动条,而我想要的就是占满手机屏幕就行了。反复测试了下在安卓内:

    $(window).height() : 获取的高度是内容区域不加导航区域,而 screen.height 是整个手机区域

  还有安卓进入同层上面有个返回按钮,点击后视屏停止播放难看,于是改变了下形式不要默认播放按钮,不要默认poster加封面;自己写了个播放按钮

    <video src="http://xxx.mp4 " id="myVideo" x5-video-player-type="h5" x5-video-player-fullscreen="true" ></video>

  通过监听处理:

    myVideo.addEventListener('play',function(){})

    myVideo.addEventListener('pause',function(){})

  此时坑已经差不多了,但是 ios 内坑继续了

    ios内联播放需要加上:<video src="http://xxx.mp4 " id="myVideo" webkit-playsinline="true" x-webkit-airplay="true"  playsinline="true" x5-video-player-type="h5" x5-video-player-fullscreen="true" ></video>

  兼容各种全屏状态   

  var ua = navigator.userAgent.toLowerCase();
  if (/iphone|ipad|ipod/.test(ua)) {
    $("#test_video").css({ "width":$(window).width(),"height":$(window).height()})
  }else if (/android/.test(ua)) {
    if (ua.match(/MicroMessenger/i) == "micromessenger") {

      //微信  解决同层时候上下黑边

      test_video.style.width = screen.width + "px";
      test_video.style.height = screen.height + "px";
    }else{

      //QQ微博等
      $("#test_video").css({ "width":$(window).width(),"height":$(window).height()})
    }
  }else{
    $("#test_video").css({ "width":$(window).width(),"height":$(window).height()})
  }

  还有通过object-position 设置显示位置、视屏是否铺满容器

    myVideo.style["object-position"]= "0px 0px"  //顶部

    var offsetY = myVideo.clientHeight - (myVideo.clientWidth * myVideo.videoHeight / myVideo.videoWidth)

    myVideo.style["object-position"]= "0px " + offsetY + "px"  //底部

    myVideo.style["object-fit"]= "fill"  //视屏铺满容器

  

  通过上面,通过特定布局在同层内还是可以实现假象的内联播放的,上面视屏,下面区域加上滚动条来处理

video 在微信中,安卓全屏和ios上如何内联播放?H5同层播放器相关接入规范的更多相关文章

  1. 解决video标签在微信中强制全屏、微信全屏播放(Android和IOS)

    在video标签中加上代码: x5-playsinline="true" webkit-playsinline="true" playsinline=" ...

  2. Android学习之Android 5.0分享动画实现微信点击全屏效果

    Android5.0过渡动画,请看 http://blog.csdn.net/qq_16131393/article/details/51112772 今天用分享动画实现微信点击全屏效果 本文源代码下 ...

  3. PlayCover for mac-Mac 上全屏运行 iOS 应用程序

    前言 如何在Mac电脑运行ios应用呢?PlayCover for Mac一款彻底解放苹果电脑的iOS软件安装工具,无需付费,操作简单,可以安装ipa文件,可以通过鼠标.键盘和控制器 在Mac上全屏运 ...

  4. 防止html5的video标签在iphone中自动全屏

    问题: 当在iphone中打开html5页面中的video视频时,会默认调取系统播放器,全屏播放视频资源. 解决方式: 1. 首先在html5页面的video标签中添加webkit-playsinli ...

  5. Android开发中的全屏背景显示方案

    引子 不管是Android还是iOS平台中,都可以看到一些应用在启动的时候会先出现一个启动画面(Splash Activity),如QQ.微信等.这个启动画面中往往会将ActionBar和Status ...

  6. ng2 中的全屏与退出全屏

    1.进入全屏 launchFullscreen(element) { if(element.requestFullscreen) { element.requestFullscreen(); } el ...

  7. 如何在Android中实现全屏,去掉标题栏效果

    在进行Android UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏.要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置.   1.在xml文件中进行配置   在项目的清单文件A ...

  8. Android中实现全屏、无标题栏的两种办法

    在进行UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏.要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置. 1.在xml文件中进行配置 在项目的清单文件AndroidManife ...

  9. 在VC++6.0开发中实现全屏显示

    全屏显示是一些应用软件程序必不可少的功能.比如在用VC++编辑工程源文件或编辑对话框等资源时,选择菜单“View\Full Screen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态. ...

随机推荐

  1. kafak集群安装-转

    前言 最近在利用Spark streaming和Kafka构建一个实时的数据分析系统,对图书阅读数据进行分析,做实时推荐.Spark Streaming 模块是对于 Spark Core 的一个扩展, ...

  2. (OK) Linux epoll模型—socket epoll server client chat

    http://www.cnblogs.com/venow/archive/2012/11/30/2790031.html http://blog.csdn.net/denkensk/article/d ...

  3. httpfs安装指南

    httpfs安装指南 安装环境 Linux maven3 jdk1.6 本地的maven源(有些依赖的jar包Cloudera已不再维护) 1.下载httfs源代码包 https://github.c ...

  4. POJ 2533 Longest Ordered Subsequence(DP 最长上升子序列)

    Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 38980   Acc ...

  5. Laravel技巧之记录多日志

    相信每个小伙伴在使用laravel的时候都会记录日志.查看日志.那么问题来了,比如我在对接zabbix接口的时候,使用 Log::info() 会让日志全部记录在 storage/logs/larav ...

  6. 关于flask登录视图报错AttributeError: '_AppCtxGlobals' object has no attribute 'user'

    在一个小程序中写了一个登录视图函数,代码如下: @app.route('/login',methods = ['GET','POST']) @oid.loginhandler def login(): ...

  7. selenium python自动化简明演示

    1.selenium安装: pip install -U selenium参考:https://pypi.python.org/pypi/selenium#downloads2.下载firefox驱动 ...

  8. VMware安装Linux,系统分区。

    系统分区: 主分区<=4 扩展分区<=1 主分区+扩展分区<=4 扩展分区不能直接使用,必须再分成若干逻辑分区才能读写数据. 逻辑分区编号从5开始,1-4给主分区和扩展分区使用的,不 ...

  9. Linux简介,虚拟机安装,网络设置,桌面和vim安装

    Linux简介: linux代表系统内核.Linux系统指基于Linux内核的操作系统,由内核和程序结合组成.比较流行的发行版本由RedHat Linux.Fedora.Centos.Debian.U ...

  10. iOS 类似2048、4096小游戏-OC

    大概思路(初步制作,粗工制造):demo 1.Collection 创建cell 2.cell上添加一个view,用来添加手势 3.字典用来存放数据->每次执行StarGame数组接收没有数字的 ...