video标签_JS对video标签的持续监视

 一入前端深似海,何时功成万古枯。

在日常的工作开发中

碰到一个视频播放的功能,往往是比较令人头疼的

因为做出一个比较完美的视频播放,往往会有一个漫长的踩坑过程

57555a59cee4ba5cf9a934838d4a0814.png

如果想通过video标签来实现一套与众不同的页面,是很艰难的,前一段时间接了一个视频播放的需求,由于各种原因,导致了项目的不可控,延期了好久才给出了一个兜底方案,下面是我的万里长征路

踩坑1

千万不要相信你的后端同学

首先拿到后端同学给你的视频地址,一定要先看下,这些接口返回的链接,在各大主流浏览器是不是都能正常播放,因为像火狐,safari浏览器对视频格式有着不同的要求

作为一名资深的前端开发,在这方面要对后端同学严格要求151952afd8de1907c05700ec818947d4.png,产品验收的时候,如果看到视频在浏览器不能播放,首先艾特的就是你,因为页面是你画出来的a94bb438d4a9a0db75753c64f377e8ae.png

ebde4fe3b42b47c3c81a6b9e85a5fd9b.png

同时,如果前端同学需要自己封装进度条等功能,那么还需要了解后端同学提供的视频是不是合格的

比如,进度条是不是从0开始播放,或者有木有只有进度条在动,视频其实没有播放的情况

本人对此深有体会由于后端同学提供的摄像头视频是静止的画面所以当时就没有考虑到会有这种问题后端给的视频直接拿到浏览器播放只有下面的进度条在动视频其实没有播放当然,这种情况存在的几率灰常小

踩坑2

手写需谨慎

能用组件实现的,还是尽量选择组件趴。

(1)html页面中视频标签

//自定义进度条需要设置controls="false"<video id="player" controls="controls">    <source src="a.mp4">video>//react中也可以使用ref的方式<video ref={this.player} controls="false">    <source src="a.mp4">video>constructor(props) {  super(props);  this.player = React.createRef();}//this.player.current 就是你需要的对象

(2)视频加载中

<script> var c= document.getElementById("video");  c.addEventListener('waiting',   () => {    console.log("加载中");  });script>

(3)视频加载完成,获取视频的时长

<script> var c= document.getElementById("player");  //监听视频加载  c.addEventListener('loadedmetadata',  () => {     //视频的总长度    console.log(video.duration);  });script>

(4)视频开始播放

<script> var c= document.getElementById("video");  c.addEventListener('play',    () => {     console.log("开始播放");   });script>

(5)实时监听视频播放进度

<video ref={this.player} controls="false"  onTimeUpdate={() => {this.timeUpdate}}>  <source src="a.mp4" type="video/mp4">video>timeUpdate = () => {  //视频当前播放到了第几秒  console.log(video.currentTime)}

(6)视频播放中

<script> var c = document.getElementById("video");  c.addEventListener('playing',    () => {     console.log("播放中");   });script>

(7)视频播放结束

<script> var c= document.getElementById("video");  c.addEventListener('ended',   () => {     console.log("播放结束");   }, false);script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值