京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8307|回复: 0

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

[复制链接]

34

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2020-8-19 18:06:33 | 显示全部楼层 |阅读模式 来自 中国
要实现网页播放视频在HTML5以前是通过标签: e9 d# F; K3 A% T; y2 z
标签的作用是在 HTML页面中嵌入多媒体元素
, P% |* w8 E& A3 \) J) S2 I1 U* O; z5 r
标签的作用是在 HTML页面中嵌入多媒体元素4 g8 z! G9 d5 `3 t' I: @
1 K! c4 @" H4 ^: N- `6 _" G
存在的问题:9 r  t4 S4 X3 E3 |, j
需要flash,效率低! M2 x; v: I  |6 n
如果浏览器不支持 Flash,那么视频将无法播放
0 V" {/ p$ f; M2 `$ c( Y0 z( A0 GiPad 和 iPhone 不能显示 Flash 视频  S" m' P, Z# f) j% f+ t  i
将视频转换为其他格式,仍然不能在所有浏览器中播放+ N" Q0 a. A6 J- ~
在HTML5后,播放网页视频就简单多了,一个解决所有问题,废话不多说,直接进入正题:
% W5 V  f; f6 _6 |+ M8 ?5 a. x本人编写HTML5代码是使用HBuilder,个人觉得软件还不错,(主要的原因是该软件的快捷键和界面布局和Eclipse很相似,对于习惯了Eclipse操作的我来说真是犹如再见故友的感觉啊,有木有)
$ l: N. p9 w0 p6 S8 H9 F2 M# a先新建Web项目,将资源文件放入项目,目录结构如下:6 B2 M2 P+ V& h8 d
7 q( D! l. `: [6 w
接着直接在index.html中编写代码就行了:
  1.        
复制代码
vedio标签,中设置autoplay,是为了视频在页面加载完毕后就自动播放,controls添加控制条工具  |- b) Y  r+ m& s2 @& `3 H- q3 ?+ v
标签通过src设置视频位置,此时的效果是这样的:
/ m8 ]0 D$ w0 r" S" R
# H4 G4 L# E5 z& h: F  f4 j这就是标签的神奇之处了,只需一个标签搞定所有事
3 n5 @' l6 c5 s5 }# ~! D! w之后就是设置播放列表,使点击列表播放后播放对应的视频:
: C2 `3 k; E0 k, K- ?) w& b, o$ ?添加<ul>,实现列表的显示:
  1. [list]       
  2. [*]视频一       
  3. [*]视频二       
  4. [*]视频三
  5. [/list]
复制代码
为了显示效果更好可以添加css样式,为正在播放的视频添加背景色:
  1. li {        list-style: none;        background-color: black;        color: white;        text-align: center;        margin: 5px auto;        width: 800px;        font-family: "楷体";        font-size: 30px;}
复制代码
之后显示效果:
* ?; f7 R3 Q0 U$ z

* F/ ?+ k; L5 j1 {: p+ j接下来就是编写<script>脚本控制点击列表播放该视频了
  1. 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()方法,实现点中哪个就播放对应视频:
  1. 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(); //开始播放                        }                }        }}
复制代码
接下来实现循环播放:
  1. 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();        } });
复制代码
效果如下:' s$ F& {0 ~% M) W% O3 d% Q1 {

9 b' U& p% }/ f5 c' f, S4 y/ k1 |- o! z

/ a: U% R9 \! b8 H) N1 n" w: z! A, R
到此这篇关于HTML5 通过Vedio标签实现视频循环播放的示例代码的文章就介绍到这了,更多相关HTML5视频循环播放内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
8 `* n& {0 \' X* @6 M/ X
+ Y) V: O7 L$ J
来源:http://www.jb51.net/html5/739063.html: ~+ p6 C  c& Y9 P# S' P# C8 J: C& w
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

帖子地址: 

梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-8-17 15:16 , Processed in 0.044032 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表