移动端video非全屏播放属性记录

2,044 阅读2分钟

video部分属性描述

  webkit-playsinline="true" /*这个属性是ios 10中设置可以 让视频在小窗内播放,也就是不是全屏播放*/  
  playsinline="true"  /*IOS浏览器支持小窗内播放*/ 
  x5-playsinline="true" /*x5内核微信支持小窗内播放*/
  x-webkit-airplay="allow" 
  (特别注意)---> x5-video-player-type="h5"    /*启用H5播放器,是wechat安卓版特性*/
  (特别注意)---> x5-video-player-type="h5-page"  /*video层级最高时遮挡其他元素,试试这个*/
  x5-video-player-fullscreen="true" /*全屏设置,设置为 true 是防止横屏*/
  x5-video-orientation="portraint" //播放器支付的方向, landscape横屏,portraint竖屏,默认值为竖屏

1、安卓播放全屏问题

主要解决在微信浏览器(就是X5内核)中的表现问题。从以上的video属性描述中列举出常用的一些属性设置video,按理应该可以达到需求效果,然而,too yang too simple。

错误的设置:

属性:x5-video-player-type="h5" 

表现问题:在微信浏览器中还是全屏播放,video层级最高

正确的设置:

属性:x5-video-player-type="h5-page"
同时不能设置属性:  x5-playsinline:true

两属性貌似冲突

2、iOS播放全屏问题

比安卓坑少多了,设置


属性:webkit-playsinline="true"

属性:playsinline="true" 

解决不同层渲染的问题

3、video最终设置

<video preload="auto" autoplay="true" webkit-playsinline="" playsinline="" x-webkit-airplay="allow" x5-video-player-type="h5-page" x5-video-player-fullscreen="true" src=""></video>

4、video视频填充方式

关于视频填充方式可尝试使用css样式object-fit来调整

object-fit: fill | contain | cover | none | scale-down
contain
被替换的内容将被缩放,以在填充元素的内容框时保持其宽高比。 整个对象在填充盒子的同时保留其长宽比,因此如果宽高比与框的宽高比不匹配,该对象将被添加“黑边”。

cover
被替换的内容在保持其宽高比的同时填充元素的整个内容框。如果对象的宽高比与内容框不相匹配,该对象将被剪裁以适应内容框。

fill
被替换的内容正好填充元素的内容框。整个对象将完全填充此框。如果对象的宽高比与内容框不相匹配,那么该对象将被拉伸以适应内容框。

none
被替换的内容将保持其原有的尺寸。

scale-down
内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。