jquery根据HTML5视频播放实践,jQuery定制HTML 5视频播放器
一个不错的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视频播放器相关推荐
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记3
技术非常多,样例非常多.仅仅好慢慢学,慢慢实践!!如今学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQ ...
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记2
技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQuer ...
- Web前端开发HTML清华大学,清华大学出版社-图书详情-《Web前端开发——HTML5+CSS+JavaScript+ jQuery +Dreamweaver》...
前言 Web前端开发是网站开发方向重要的专业课程,随着市场对Web前端工程师的需求增加,国内很多本专科院校正在或准备开设该课程.本书是咸阳师范学院2016年教材建设资助项目. Web前端开发涵盖多门技 ...
- 『HTML5制造仿JQuery作用』减速
2019独角兽企业重金招聘Python工程师标准>>> 开言 本篇文章经过开源html5引擎lufylegend完成JQuery滑动效果.能使一个矩形来回减速加快滑行.因为用到了ht ...
- html元素data属性设置变量,HTML5 自定义属性 data-* 和 jQuery.data 详解
编辑注:HTML中使用data-xx="xx"开头标记的属性到底有什么用,直接使用xx="xx"不是更简单吗?其实data-xx是HTML5的一个属性,支持通过 ...
- js,jquery,css,html5特效
js,jquery,css,html5特效 包含js,jquery,css,html5特效,源代码 本文地址:http://www.cnblogs.com/Jeremy2001/p/6089343.h ...
- 征服大前端视频教程第一季(jQuery、HTML5、CSS3、Node.js)
征服大前端视频教程第一季(jQuery.HTML5.CSS3.Node.js.AngularJS.MongoDB) 网盘地址:https://pan.baidu.com/s/1-dbJMOa1RrQz ...
- 在线HTML5,CSS3,VueJS,jQuery运行测试练习工具
在线HTML5,CSS3,VueJS,jQuery运行测试练习工具 在线HTML5,CSS3,VueJS,jQuery运行测试练习工具 本工具可以在线编辑HTML5,CSS3,VueJS,JavaSc ...
- 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上有类似的问题,但似乎并 ...
- 使用HTML5画布和jQuery使小球颜色不断变化
现在要实现使用HTML5画布和jQuery实现小球颜色不断变化,依次为红色.绿色.蓝色,如下图 以下是实现的代码 <!DOCTYPE html> <html> <head ...
最新文章
- Python_Day4_函数
- java如何实现连接wifi_java-是否可以检测到您要连接的WiFi类型?
- 数据库读写分离(aop方式完整实现)
- fzu 1894 单调队列
- PHP中stripslashes()函数的解释
- Domino Web开发规则之一:Notes命名规范
- Practice 10
- 无刷直流电机反电动势过零检测_TI电机库源码
- 使用F021_API_F2837xD_FPU32.lib 库函数遇到的问题 warning #10068-D: no matching section
- C语言运行时电脑白屏怎么办,win10电脑白屏死机无响怎么回事_win10电脑白屏死机无响七种解决方法...
- 如何恢复U盘中丢失的文件
- CorelDRAW图片导出变色,如何解决?
- Conda环境无法激活
- deny all后如何优雅的处理403
- kubernetes容灾备份工具velero
- myeclipse崩溃闪退解决方案
- Python实现猜单词游戏
- 深度解析FPS游戏外挂形成原因与“破局”方案
- python显示图片 播放mp3_如何在python中从Mp3文件中提取和显示唱片集图片
- 【实验四 循环结构】7-5 sdut-C语言实验- 做乘法
热门文章
- Linux如何用link命令停网卡,如何使用 ethtool 命令管理以太网卡 | Linux 中国
- linux网卡加vlan标签,如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡
- bh1750采集流程图_基于BH1750的光照度检测)教程.doc
- 信号在PCB走线中的延迟
- 【高中数学】数列 · 通项求法
- MYSQL默认隔离级别详解
- 停止员工拖延症!工时管理系统的作用之一
- 研究知识追踪/学生模型的一些学校和人物
- 百度大脑iOCR助力财务报销智能化,省时省力
- 《自然语言处理实战:利用Python理解、分析和生成文本》读书笔记:第1章 NLP概述