HTML5 video循环播放多个视频的方法步骤


Posted in HTML / CSS onAugust 06, 2020

最近在开发中遇到的需求是:微信扫描课件二维码,播放其对应的课件视频

设计流程

1.扫描二维码时,将其视频列表存入model中,存入第一条是为了,不在html界面重新获取第一条视频

model.addAttribute("playUrl", videos.get(0).getVideoUrl());
  model.addAttribute("videoUrls", JsonUtils.toJson(videos));

2.返回其对应的html界面

return "client/coursePlayer.html";

3.使用video 播放视频第一条视频

<video id="videoID" controls="true"
           style="object-fit:fill"
           src="${playUrl}"
           class="horizontal-img"
           preload="metadata"
           webkit-playsinline="true"
           playsinline="true"
           x-webkit-airplay="allow"
           x5-video-player-type="h5"
           x5-video-player-fullscreen="true"
           x5-video-orientation="landscape"
           autoplay>
      抱歉,您的浏览器不支持内嵌视频!
    </video>

4.用ended 监控视频播放进度

<script type="application/javascript">
  videoDom.addEventListener('ended', function(event) {
    if (index === length-1) {
      videoDom.pause();
    } else {
      index += 1;
      videoDom.src = videos[index].videoUrl;
      videoDom.play();
    }
  })
 </script>

html界面如下:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>${title}</title>
  <style>
    .video {
      position: fixed;
      top: 0;
      bottom: 0;
      right: 0;
      left: 0;
      z-index: 99;
      transition: all 0.3s;
      background-color: rgba(0, 0, 0, 0.5);
    }

    .video-content {
      height: 100%;
      width: 100%;
    }

    video {
      position: initial;
    }

    video.horizontal-img {
      width: 100%;
      height: auto;
      max-height: 100%;
    }
  </style>
</head>
<body>
<div class="video">
  <div class="video-content">
    <video id="videoID" controls="true"
           style="object-fit:fill"
           src="${playUrl}"
           class="horizontal-img"
           preload="metadata"
           webkit-playsinline="true"
           playsinline="true"
           x-webkit-airplay="allow"
           x5-video-player-type="h5"
           x5-video-player-fullscreen="true"
           x5-video-orientation="landscape"
           autoplay>
      抱歉,您的浏览器不支持内嵌视频!
    </video>
  </div>
</div>
<script type="application/javascript">
  var dom = document;
  var index = 0;
  var videos = ${videoUrls};
  var videoDom = dom.getElementById('videoID');
  videoDom.play();
  videoDom.addEventListener('ended', function(event) {
    if (index === length-1) {
      videoDom.pause();
    } else {
      index += 1;
      videoDom.src = videos[index].videoUrl;
      videoDom.play();
    }
  })
</script>
</body>
</html>

到此这篇关于HTML5 video循环播放多个视频的方法步骤的文章就介绍到这了,更多相关HTML5 video循环播放多视频内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
HTML5 Canvas绘制文本及图片的基础教程
Mar 14 HTML / CSS
html5 localStorage本地存储_动力节点Java学院整理
Jul 06 HTML / CSS
html5中的input新属性range使用记录
Sep 05 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
May 12 HTML / CSS
整理HTML5的一些新特性与Canvas的常用属性
Jan 29 HTML / CSS
html5 Canvas实现图片旋转的示例
Jan 15 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
Dec 21 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
Aug 05 HTML / CSS
amazeui 验证按钮扩展的实现
Aug 21 HTML / CSS
Amaze UI 文件选择域的示例代码
Aug 26 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
Nov 19 HTML / CSS
css3 文字断裂效果
Apr 22 HTML / CSS
html5 video全屏播放/自动播放的实现示例
Aug 06 #HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
Aug 05 #HTML / CSS
Html5饼图绘制实现统计图的方法
Aug 05 #HTML / CSS
Canvas 帧动画吃苹果小游戏
Aug 05 #HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
Jul 28 #HTML / CSS
canvas实现图片镜像翻转的2种方式
Jul 22 #HTML / CSS
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
Jul 20 #HTML / CSS
You might like
在PWS上安装PHP4.0正式版
2006/10/09 PHP
谨慎使用PHP的引用原因分析
2012/09/06 PHP
php实现插入排序
2015/03/29 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
潜说js对象和数组
2011/05/25 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
Python实现批量压缩图片
2018/01/25 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
使用python求解二次规划的问题
2020/02/29 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
Python读取yaml文件的详细教程
2020/07/21 Python
优秀学生获奖感言
2014/02/15 职场文书
教师职位说明书
2014/07/29 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
校运会新闻稿
2015/07/17 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB
Redis特殊数据类型bitmap位图
2022/06/01 Redis