js控制video的播放器大小,以及poster兼容问题

前置条件:
video标签承载视频。

遇到的问题:

  1. 在微信中点击播放按钮后,自动全屏播放。
  2. ios下video的封面并没有取到第一帧。pc端和android正常。

期望:

  1. 在微信中点击播放后,依然在当前页面,不要全屏。.
  2. 所有设备下,取第一帧作为poster。

解决方案:
对于第一个问题,很简单,设置webkit-playsinlineplaysinline属性就能实现。
标签写法:

<video  src="https://vjs.zencdn.net/v/oceans.mp4"  playsinline="playsinline" webkit-playsinline="webkit-playsinline"></video>

或者使用js设置:

for(const video of document.querySelectorAll('video')) { //我这里有多个vedio标签
            video.setAttribute('webkit-playsinline', 'webkit-playsinline');
            video.setAttribute('playsinline', 'playsinline');
            video.setAttribute('muted', 'muted');
            video.setAttribute('autoplay', 'autoplay');
            setTimeout(() => video.pause(), 800);
            video.append('您的浏览器不支持video播放');
 }

关于第二个问题的解决方案,上面的代码已经展示:
首先将视频设置为静音模式,这样就可以直接自动播放,否则chrome等一些高版本浏览器只写autoplay是无法实现自动播放的,自动播放后,延迟800ms, 暂停播放,这样就可以把视频卡在第一帧开始的时候,那封面也就设置成功了。

猜你喜欢

转载自blog.csdn.net/xieamy/article/details/109743165
今日推荐