HTML5 通过Vedio标签实现视频循环播放的示例代码


Posted in HTML / CSS onAugust 05, 2020

要实现网页播放视频在HTML5以前是通过<embed>标签

<embed> 标签的作用是在 HTML页面中嵌入多媒体元素

<embed src="1.swf"width="400">

<object> 标签的作用是在 HTML页面中嵌入多媒体元素

<object data="1.swf"width="400"></object>

存在的问题:

需要flash,效率低

如果浏览器不支持 Flash,那么视频将无法播放

iPad 和 iPhone 不能显示 Flash 视频

将视频转换为其他格式,仍然不能在所有浏览器中播放

在HTML5后,播放网页视频就简单多了,一个<vedio></vedio>解决所有问题,废话不多说,直接进入正题:

本人编写HTML5代码是使用HBuilder,个人觉得软件还不错,(主要的原因是该软件的快捷键和界面布局和Eclipse很相似,对于习惯了Eclipse操作的我来说真是犹如再见故友的感觉啊,有木有)

先新建Web项目,将资源文件放入项目,目录结构如下:

HTML5 通过Vedio标签实现视频循环播放的示例代码

接着直接在index.html中编写代码就行了:

<video id="myVedio" autoplay="autoplay" controls="controls" width="800px">
	<source src="video/1.webm"></source>
</video>

vedio标签,中设置autoplay,是为了视频在页面加载完毕后就自动播放,controls添加控制条工具

<source>标签通过src设置视频位置,此时的效果是这样的:

HTML5 通过Vedio标签实现视频循环播放的示例代码

这就是<vedio>标签的神奇之处了,只需一个标签搞定所有事

之后就是设置播放列表,使点击列表播放后播放对应的视频:

添加<ul>,<li>实现列表的显示:

<ul>
	<li>视频一</li>
	<li>视频二</li>
	<li>视频三</li>
</ul>

为了显示效果更好可以添加css样式,为正在播放的视频添加背景色:

li {
	list-style: none;
        background-color: black;
	color: white;
	text-align: center;
	margin: 5px auto;
	width: 800px;
	font-family: "楷体";
	font-size: 30px;
}

之后显示效果:

HTML5 通过Vedio标签实现视频循环播放的示例代码

接下来就是编写<script>脚本控制点击列表播放该视频了

var myVideo = document.getElementById("myVedio"); //通过js获取到vedio标签实例
var vedioLi = document.getElementsByTagName("li"); //获取视频列表
 
var vedioArry = new Array("1.webm", "2.webm", "3.webm"); //设置播放视频列表数组
var arryNumber = 0; //设置默认播放位置,方便后面循环播放

通过for循环为视频列表添加onClick()方法,实现点中哪个就播放对应视频:

for(var j = 0; j < vedioLi.length; j++) {//循环条件为列表的长度
	vedioLi[j].onclick = function() {
	        for(var m = 0; m < vedioLi.length; m++) {
	                vedioLi[m].style.backgroundColor = "black";//为每个类表设置背景为黑色
	        }
                for(var i = 0; i < vedioLi.length; i++) {
		        if(vedioLi[i] == this) { //判断点中的是否为该项
		                vedioLi[i].style.backgroundColor = "darkgray"; //将点击后的背景设置为灰白
		                arryNumber = i; //将当前播放设置为选中的下标
		                myVideo.src = "video/" + vedioArry[i]; //设置播放视频
		                myVideo.play(); //开始播放
	                }
	        }
        }
}

接下来实现循环播放:

myVideo.addEventListener("ended", function() {//为vedio添加ended监听,当视频播放完毕后执行对应函数
	if(arryNumber == (vedioArry.length - 1)) { //判断是否到了最后一个视频
	        vedioLi[vedioLi.length - 1].style.backgroundColor = "black"; //将前一个列表颜色设为black
		vedioLi[0].style.backgroundColor = "darkgray"; //将当前视频设置为灰白
		myVideo.src = "video/"+vedioArry[0]; //播放第一个视频
		myVideo.play();
		arryNumber = 0;//将下标重设为 0
	} else {
		arryNumber += 1; //每播放一次则将下标加一
		myVideo.src = "video/" + vedioArry[arryNumber];
		vedioLi[arryNumber].style.backgroundColor = "darkgray";
		vedioLi[arryNumber - 1].style.backgroundColor = "black";
		myVideo.play();
	}
 
});

效果如下:

HTML5 通过Vedio标签实现视频循环播放的示例代码

HTML5 通过Vedio标签实现视频循环播放的示例代码

到此这篇关于HTML5 通过Vedio标签实现视频循环播放的示例代码的文章就介绍到这了,更多相关HTML5视频循环播放内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
浏览器实现移动端高性能css3动画(开启gpu加速)
Dec 23 HTML / CSS
使用css3制作动感导航条示例
Jan 26 HTML / CSS
CSS3使用border-radius属性制作圆角
Dec 22 HTML / CSS
浅谈CSS3中的变形功能-transform功能
Dec 27 HTML / CSS
CSS3实现缺角矩形,折角矩形以及缺角边框
Dec 20 HTML / CSS
HTML5移动端开发遇见的东西
Oct 11 HTML / CSS
使用html5 canvas 画时钟代码实例分享
Nov 11 HTML / CSS
纯HTML5+CSS3制作生日蛋糕(代码易懂)
Nov 16 HTML / CSS
html5调用app分享功能示例(WebViewJavascriptBridge)
Mar 21 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
Oct 14 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
Sep 16 HTML / CSS
浅析CSS在DevTools 中架构演变
Oct 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
HTML5跳转小程序wx-open-launch-weapp的示例代码
Jul 16 #HTML / CSS
uniapp+Html5端实现PC端适配
Jul 15 #HTML / CSS
You might like
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
zend api扩展的php对象的autoload工具
2011/04/18 PHP
php学习之变量的使用
2011/05/29 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
vue实现图片预览组件封装与使用
2019/07/13 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
七夕活动策划方案
2014/08/16 职场文书
反腐倡廉观后感
2015/06/08 职场文书
高中历史教学反思
2016/02/19 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android