当前位置: 首页 > Web前端 > HTML5

微信视频兼容性问题

时间:2023-04-05 00:04:03 HTML5

1.video标签内联属性src:videoURLposter:视频封面,不播放时显示的图片preload:预加载autoplay:autoplayloop:循环播放controls:浏览器自带控制条width:videowidthheight:videoheightstyle="object-fit:fill"/添加这个样式会使得Android/web视频在微信中全屏,如果在手机上预览,视频封面会和视频一样大小/webkit-playsinline="true"IOS微信浏览器支持小窗播放x5-playsinline="true"IOS微信浏览器支持小窗播放playsinline="true"IOS微信浏览器支持小窗播放x-webkit-airplay="true"支持ios的AirPlay功能airplay="true"支持ios的AirPlay功能x5-video-player-type="h5"开启同层H5播放器x5-video-player-fullscreen="true"全屏设置x5-video-orientation="portraint"竖屏覆盖覆盖muted="true"静音播放说明1.preload="auto":该属性规定在页面加载完成后加载视频。如果设置了自动播放属性,则忽略此属性。通用参数的可能取值:auto——加载页面时加载整个视频meta——加载页面时只加载元数据none——加载页面时不加载视频2、muted:设置该属性时,规定视频的音频输出应该静音3.controls="controls":该属性指定浏览器应该为视频提供播放控件。4.autoplay="autoplay":视频自动播放设置,有经验的人应该都知道autoplay标签在手机上是不兼容的,APP里的设置问题导致无论是安卓还是IOS都无法自动播放。需要模拟自动播放只能由某些事件触发。5、webkit-playsinlineplaysinline:播放视频时,在不脱离文档流的情况下,在本地播放。但是这个属性比较特殊,需要嵌入到网页APP中,比如微信中UIwebview的allowsInlineMediaPlayback=YESwebview.allowsInlineMediaPlayback=YES,才能生效。也就是说,如果APP没有设置,在你的页面上加这个标签是不会生效的,这就是为什么安卓手机微信播放视频总是全屏的原因,因为APP不支持内联播放,而ISO上的微信支持。在这里补充一下,如果要做全屏直播或者全屏H5体验,需要设置iso去掉webkit-playsinline标签,因为设置false是不支持的,安卓不需要它,因为默认是全屏。但是此时全屏有播放控件,不管你有没有设置控件。直播可能需要播放控件,但不需要全屏H5,所以去掉全屏播放控件,需要做如下设置:同层播放。6.x5-video-player-type:启用同层的H5播放器,即视频全屏时,div可以显示在视频层,这也是安卓版独有的属性微信。同层播放的别名也叫沉浸式播放。播放时看起来是全屏,但是控件和微信导航栏都被去掉了,只剩下“X”和“<”按钮。目前同层播放器仅支持安卓(包括微信),暂不支持iOS。笔者有想过为什么同层播放只对安卓开放,因为安卓不能像ISO一样在本地播放,默认的全屏会挡住一些界面操作。如果是全面屏H5还好,但是对于直播来说,弹幕等功能是无法实现的,所以此时同层播放的概念就解决了这个问题。不过笔者在测试的过程中发现,不同版本的ISO和Android的效果略有不同。7.x5-video-orientation:声明播放器支持的方向,可选值为横屏为landscape,竖屏为portraitt。默认值是肖像。不管是直播还是全屏,H5一般都是竖屏播放,但是这个属性需要x5-video-player-type开启H5模式8、x5videoplayerfullscreen:全屏设置。作者尚未理解此标签的意图。测试的时候发现设置true和false会导致布局不同,如图中Click标签的位置。另外,ISO微信浏览器是Chrome的核心,所有相关属性都支持,这也是X5不支持同层播放的原因。安卓微信浏览器基于X5内核,不支持playsinline等一些属性标签,所以一直全屏。2、微信H5页面在指定位置嵌入小窗视频参考链接:1.https://www.cnblogs.com/baiyy...