一个不错的jQuery定制HTML 5视频播放器,有需要学习的朋友可参考。

HTML5 Video标签基础

先来学习下HTML 5

Video标签的基本用法,先看如下的例子代码:

代码如下

复制代码

Your browser does not support the video tag.

在HTML5中,视频标签只需要添加标签即可,在上面的代码标签中,其中Src指定了视频来源的格式,目前支持有MP4,webm和ogy格式,如果有其他视频格式的话,可以通过一些视频工具进行转换。

此外,在HTML5标签中,也可以写一些文字,比如上面的“你的浏览器不支持视频标签”。

另外要注意的是,假如在ipad上使用video标签,由于目前的bug,必须把mp4格式的文件放在video标签的第一位,否则会出错。

开始定制HTML 5 Video播放器插件

有了以上的基础知识后,我们可以开始着手进行html

5 video播放器插件了。首先,很幸运的是HTML

5在视频和音频方面都有相关的API可以供调用操作(详细见W3C的标准:http://www.w3.org/TR/html5/the-iframe-element.html#media-elements)。首先,我们看下如果通过jQuery获得标准的html5

video标签对象,注意这里我们使用的是DOM对象,否则不能通过API获得video的各种属性和方法。

//获得video标签,这里是DOM对象

代码如下

复制代码

var video =

document.getElementByIdx_x(‘videoID’);

也可以通过jQuery的方法,如下:

代码如下

复制代码

var video =

$(‘#videoID’).get(0);

接下来是设计PLAY和PAUSE(暂停按钮),代码如下:

这里播放和暂停的按钮的jQuery事件代码如下:

代码如下

复制代码

$(‘.btnPlay’).on(‘click’,

function() {

if(video[0].paused) {

video[0].play();

}

else {

video[0].pause();

}

return false;

};

可以看到,这里可以通过video标签的paused方法判断视频是否已经暂停了,而用play方法则可以直接播放视频,这里判断的逻辑很简单,如果视频已经暂停,当再次按的时候则播放,反之亦然。

接下来,看下如何能显示当前的播放进度以及进行回放。HTML5中,也提供了回放的功能。我们先设计如何显示当前的播放进度,以及视频的总的时间长度,代码设计如下:

代码如下

复制代码

Current play time:

Video duration:

而现在相关的jQuery事件中,必须判断通过loadedmetadata事件,去判断HTML5

Video的metadata元数据是否已经加载进来,然后就可以调用当前视频的时间和总长度了,代码如下:

代码如下

复制代码

//获得视频的时间总长度

video.on(‘loadedmetadata’, function() {

$(‘.duration’).text(video[0].duration));

});

// 更新当前HTML5视频播放时间

video.on(‘timeupdate’,

function() {

$(‘.current’).text(video[0].currentTime);

});

接下来,我们设计一个视频播放的进度条,设计进度条的样式如下:

代码如下

复制代码

在如下的界面中,应用上面的样式

代码如下

复制代码

现在,我们把上面学到的知识整合一下,完善一下进度条,通过当前视频的播放时间除以视频的总时间,得出播放的进度百分比,然后通过进度条显示出来,如下代码:

代码如下

复制代码

video.on(‘loadedmetadata’, function() {

$(‘.duration’).text(video[0].duration));

});

video.on(‘timeupdate’,

function() {

var currentPos =

video[0].currentTime; //获得当前播放时间

var maxduration =

video[0].duration; //获得影片播放时间

var percentage = 100 *

currentPos / maxduration; //百分比

$(‘.timeBar’).css(‘width’, percentage+’%');

});

但这样显然还不足够,我们还要让进度条能够拖动,我们可以监听mousedown,mouseup和mousemove这几个事件完成相关的功能,代码如下:

代码如下

复制代码

var timeDrag = false; /*

初始默认的拖动状态为false/

$(‘.progressBar’).mousedown(function(e) {

timeDrag = true;

updatebar(e.pageX);

});

$(document).mouseup(function(e) {

if(timeDrag) {

timeDrag = false;

//停止拖动,设置timeDrag为false

updatebar(e.pageX);

}

});

$(document).mousemove(function(e) {

if(timeDrag) {

updatebar(e.pageX);

}

});

var updatebar =

function(x) {

var progress =

$(‘.progressBar’);

var maxduration =

video[0].duration;

var position = x –

progress.offset().left;

var percentage = 100 *

position

//检查拖动进度条的范围是否合法

if(percentage > 100)

{

percentage = 100;

}

if(percentage < 0)

{

percentage = 0;

}

//Update progress bar and

video currenttime

$(‘.timeBar’).css(‘width’, percentage+’%');

video[0].currentTime =

maxduration * percentage / 100;

};

jquery根据HTML5视频播放实践,jQuery定制HTML 5视频播放器相关推荐

  1. JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记3

    技术非常多,样例非常多.仅仅好慢慢学,慢慢实践!!如今学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQ ...

  2. JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记2

    技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQuer ...

  3. Web前端开发HTML清华大学,清华大学出版社-图书详情-《Web前端开发——HTML5+CSS+JavaScript+ jQuery +Dreamweaver》...

    前言 Web前端开发是网站开发方向重要的专业课程,随着市场对Web前端工程师的需求增加,国内很多本专科院校正在或准备开设该课程.本书是咸阳师范学院2016年教材建设资助项目. Web前端开发涵盖多门技 ...

  4. 『HTML5制造仿JQuery作用』减速

    2019独角兽企业重金招聘Python工程师标准>>> 开言 本篇文章经过开源html5引擎lufylegend完成JQuery滑动效果.能使一个矩形来回减速加快滑行.因为用到了ht ...

  5. html元素data属性设置变量,HTML5 自定义属性 data-* 和 jQuery.data 详解

    编辑注:HTML中使用data-xx="xx"开头标记的属性到底有什么用,直接使用xx="xx"不是更简单吗?其实data-xx是HTML5的一个属性,支持通过 ...

  6. js,jquery,css,html5特效

    js,jquery,css,html5特效 包含js,jquery,css,html5特效,源代码 本文地址:http://www.cnblogs.com/Jeremy2001/p/6089343.h ...

  7. 征服大前端视频教程第一季(jQuery、HTML5、CSS3、Node.js)

    征服大前端视频教程第一季(jQuery.HTML5.CSS3.Node.js.AngularJS.MongoDB) 网盘地址:https://pan.baidu.com/s/1-dbJMOa1RrQz ...

  8. 在线HTML5,CSS3,VueJS,jQuery运行测试练习工具

    在线HTML5,CSS3,VueJS,jQuery运行测试练习工具 在线HTML5,CSS3,VueJS,jQuery运行测试练习工具 本工具可以在线编辑HTML5,CSS3,VueJS,JavaSc ...

  9. html5支持ajax和jQuery吗,使用HTML5文件上传与AJAX和jQuery(Using HTML5 file uploads with AJAX and jQuery)...

    使用HTML5文件上传与AJAX和jQuery(Using HTML5 file uploads with AJAX and jQuery) 诚然,Stack Overflow上有类似的问题,但似乎并 ...

  10. 使用HTML5画布和jQuery使小球颜色不断变化

    现在要实现使用HTML5画布和jQuery实现小球颜色不断变化,依次为红色.绿色.蓝色,如下图 以下是实现的代码 <!DOCTYPE html> <html> <head ...

最新文章

  1. Python_Day4_函数
  2. java如何实现连接wifi_java-是否可以检测到您要连接的WiFi类型?
  3. 数据库读写分离(aop方式完整实现)
  4. fzu 1894 单调队列
  5. PHP中stripslashes()函数的解释
  6. Domino Web开发规则之一:Notes命名规范
  7. Practice 10
  8. 无刷直流电机反电动势过零检测_TI电机库源码
  9. 使用F021_API_F2837xD_FPU32.lib 库函数遇到的问题 warning #10068-D: no matching section
  10. C语言运行时电脑白屏怎么办,win10电脑白屏死机无响怎么回事_win10电脑白屏死机无响七种解决方法...
  11. 如何恢复U盘中丢失的文件
  12. CorelDRAW图片导出变色,如何解决?
  13. Conda环境无法激活
  14. deny all后如何优雅的处理403
  15. kubernetes容灾备份工具velero
  16. myeclipse崩溃闪退解决方案
  17. Python实现猜单词游戏
  18. 深度解析FPS游戏外挂形成原因与“破局”方案
  19. python显示图片 播放mp3_如何在python中从Mp3文件中提取和显示唱片集图片
  20. 【实验四 循环结构】7-5 sdut-C语言实验- 做乘法

热门文章

  1. Linux如何用link命令停网卡,如何使用 ethtool 命令管理以太网卡 | Linux 中国
  2. linux网卡加vlan标签,如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡
  3. bh1750采集流程图_基于BH1750的光照度检测)教程.doc
  4. 信号在PCB走线中的延迟
  5. 【高中数学】数列 · 通项求法
  6. MYSQL默认隔离级别详解
  7. 停止员工拖延症!工时管理系统的作用之一
  8. 研究知识追踪/学生模型的一些学校和人物
  9. 百度大脑iOCR助力财务报销智能化,省时省力
  10. 《自然语言处理实战:利用Python理解、分析和生成文本》读书笔记:第1章 NLP概述