基于jQuery的网页影音播放器jPlayer的基本使用教程


Posted in Javascript onMarch 08, 2016

jPlayer简介:

想在网页上播放背景音乐,不想用html标签的方式,因为那样只有音乐全部下载完以后才能播放,还容易出现跨浏览器兼容性的问题,于是选了一款基于jQuery的播放器jPlayer来做。

设置jPlayer的尺寸大小
使用构造函数配置jPlayer({size:Object})设置jPlayer的高宽。

使用构造函数配置jPlayer({sizeFull:Object})设置全屏尺寸。

注意可通过构造函数配置jPlayer({backgroundColor:"#RRGGBB"})设置jPlayer背景颜色。

Flash 安全规则
使用下面的代码放宽了对jPlayer SWF 文件的限制,并且可以调用任何域名的swf文件了。

flash.system.Security.allowDomain("*");
flash.system.Security.allowInsecureDomain("*");

部署

通常,要上传swf文件和js文件到你域名下的js目录中。更改swf路径使用构造函数配置jPlayer({"swfPath":path})。

严格来讲,插件文件可能会远程链接到jplayer.org上,但请求你们不要链接到jplayer.com上,因为当前我们还没有充足资源做一个cdn。另外,远程服务器上的Flash播放软件要求所有的jPlayer("setMedia", media)设置的多媒体文件URL使用绝对路径。

要在本地开发,你需要在自己的电脑上安装一个服务器,比如apache,使localhost生效。

使用Javascript API控制你网站上的媒体文件jPlayer支持的媒体格式:HTML5: mp3, m4a (AAC), m4v (H.264), ogv*, oga*, wav*, webm* Flash: mp3, m4a (AAC), m4v (H.264)

jPlayer需要两个文件上传到你的服务器:

(1)Jplayer.swf

(2)jquery.jplayer.min.js

jPlayer构造在jQuery选择器上。采用 $(ID).jPlayer(Object: options) 的形式执行动作。在某些场合,jPlayer也可以构造在body上,指你不用播放视频的时候。

注意:swfPath,它定义jPlayer SWF文件的路径。记得把SWF文件上传到你的服务器!你也可以使用类似jPlayer({solution:"flash, html")的语句规定用什么方式播放媒体优先。

初始化后更改设置
初始化之后 使用类似 jPlayer("option",{key:value})的形式改变设置。
实现一个自动播放音乐的网页

$(document).ready(function(){
 $("#jquery_jplayer_1").jPlayer({
 ready: function (event) {
  $(this).jPlayer("setMedia", {
  m4a:"http://www.jplayer.org/audio/m4a/TSP-01-Cro_magnon_man.m4a",
  oga:"http://www.jplayer.org/audio/ogg/TSP-01-Cro_magnon_man.ogg"
  });
 },
 swfPath: "js",
 supplied: "m4a, oga",
 }).jPlayer("play");
});

解释一下上面的代码:

第一行“$(document).ready(function(){”大家都无比亲切吧,文档载入事件。

第二行“$("#jquery_jplayer_1").jPlayer({”选择的是一个DIV,用于承载HTML5元素或是Flash,大家在文档里写一个空的DIV即可。

第三行“ready: function (event) {”,ready是一个键,function是一个值,灰常熟悉的东西。

第四行“$(this).jPlayer("setMedia", {”this指的是“$("#jquery_jplayer_1")”,意为:“$("#jquery_jplayer_1").jPlayer("setMedia", {”很熟悉。setMedia是一个option,根据第二步说的。

第九行“swfPath: "js",”,这个定义了swf播放器所在的相对路径,如果你不打算兼容不支持HTML5的网页,可以不写:)

第十行“supplied: "m4a, oga",”所支持的格式。

第十一行“jPlayer("play");”意为:$("#jquery_jplayer_1").jPlayer("play");,播放媒体,实现自动播放。

jPlayer常用的方法:

//播放
$("#jpId").jPlayer("play");
//暂停
$("#jpId").jPlayer("pause");
//停止
$("#jpId").jPlayer("stop");
//设置进度相关
//1.按歌曲时长百分比
$("#jpId").jPlayer("playHead", 0);// 从 0% 处开始播放
$("#jpId").jPlayer("playHead", 10);// 从 10% 处开始播放
$("#jpId").jPlayer("playHead", 100);// 从 100% 处开始播放
//2.按播放毫秒数
$("#jpId").jPlayer("playHeadTime", 0);// 从 0毫秒 处开始播放
$("#jpId").jPlayer("playHeadTime", 10000); // 从 10000毫秒(10秒) 处开始播放
//设定音量
$("#jpId").jPlayer("volume", 0.25); //设为最大音量的 25%
//绑定事件
//播放结束事件
$("#jpId").jPlayer("onSoundComplete", function() {
  //alert('播放结束了');
  this.element.jPlayer("play"); // 循环播放
});
//播放进行事件
$("#jpId").jPlayer("onProgressChange", function(lp,ppr,ppa,pt,tt) {
  var s = '缓冲百分比:'+lp +'% ,';
  s += '已播放占已缓冲的百分比:'+ppr +'% ,';
  s += '已播放占总时长的百分比:'+ppa +'%';
  s += '已播放时间:'+pt+ '毫秒 ,';
  s += '总时间:'+tt+ '毫秒';
  $("#play_info").text(s);
});
Javascript 相关文章推荐
javascript实现unicode和字符的互相转换
Jul 18 Javascript
Firefox getBoxObjectFor getBoundingClientRect联系
Oct 26 Javascript
jQuery 跨域访问问题解决方法
Dec 02 Javascript
jquery ztree实现下拉树形框使用到了json数据
May 14 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
Jan 06 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
Jan 14 Javascript
Bootstrap选项卡学习笔记分享
Feb 13 Javascript
ReactJs实现树形结构的数据显示的组件的示例
Aug 18 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
详解vue-cli中模拟数据的两种方法
Jul 03 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
Jul 18 Javascript
vue如何在项目中调用腾讯云的滑动验证码
Jul 15 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
Mar 08 #Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
Mar 08 #Javascript
js实现数组冒泡排序、快速排序原理
Mar 08 #Javascript
Bootstrap多级导航栏(级联导航)的实现代码
Mar 08 #Javascript
javascript html实现网页版日历代码
Mar 08 #Javascript
一道关于JavaScript变量作用域的面试题
Mar 08 #Javascript
理解javascript函数式编程中的闭包(closure)
Mar 08 #Javascript
You might like
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python中的类学习笔记
2014/09/23 Python
Python实现合并字典的方法
2015/07/07 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript
基于Python实现射击小游戏的制作
2022/04/06 Python