Jplayer小样

最近应公司要求需要一个MP3播放的插件,网上找了很多插件,看来看去还是jPlayer用着最舒服也最容易扩展。所以就找了个资料研究了下,简单做了个小DEMO。支持实时控制列表,常见的播放器功能。

jPlayer中可扩展的强大功能很多,暂时也用不上,等着后来人去发掘了。

废话说完了。进入正题。

插件里就这么多东西。大概分出来之后:

add-on文件夹里是播放列表控制的js文件,里面预设了很多播放和列表控制的方法。

jplayer不用说了,插件的主题。

examples……(这个没人有疑问的我相信这个世界不会是满满的恶意)

lib里是插件本身用到的一些js对象调用,可以不用太过关心,因为如果要改动这个代码才能符合需求的话,建议还是换个插件吧。

skin是皮肤选项,这个很常规了。

以上,其实我们需要关注的地方是add-on里面的东西,开发中需要改,要最多使用的也是这个。

下面是DEMO的核心代码:

HTML头:

<head>
<meta http-equiv="Content-Type" charset="utf-8" />
<link href="../../skin/blue.monday/jplayer.blue.monday.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../../lib/jquery.min.js"></script>
<script type="text/javascript" src="../../dist/jplayer/jquery.jplayer.min.js"></script>
<script type="text/javascript" src="../../dist/add-on/jplayer.playlist.js"></script>
</head>

需要引用的东西就这几个,所有东西都可以在插件内部文件夹中找到

HTML部分:

<div id="jquery_jplayer_1" class="jp-jplayer"></div>
<div id="jp_container_1" class="jp-audio" role="application" aria-label="media player">
    <div class="jp-type-playlist">
        <div class="jp-gui jp-interface">
            <div class="jp-controls">
                <button class="jp-previous" role="button" tabindex="0">previous</button>
                <button class="jp-play" role="button" tabindex="0">play</button>
                <button class="jp-next" role="button" tabindex="0">next</button>
                <button class="jp-stop" role="button" tabindex="0">stop</button>
            </div>
            <div class="jp-progress">
                <div class="jp-seek-bar">
                    <div class="jp-play-bar"></div>
                </div>
            </div>
            <div class="jp-volume-controls">
                <button class="jp-mute" role="button" tabindex="0">mute</button>
                <button class="jp-volume-max" role="button" tabindex="0">max volume</button>
                <div class="jp-volume-bar">
                    <div class="jp-volume-bar-value"></div>
                </div>
            </div>
            <div class="jp-time-holder">
                <div class="jp-current-time" role="timer" aria-label="time">&nbsp;</div>
                <div class="jp-duration" role="timer" aria-label="duration">&nbsp;</div>
            </div>
            <div class="jp-toggles">
                <button class="jp-repeat" role="button" tabindex="0">repeat</button>
                <button class="jp-shuffle" role="button" tabindex="0">shuffle</button>
            </div>
        </div>
        <div class="jp-playlist">
            <ul>
                <li>&nbsp;</li>
            </ul>
        </div>
    </div>
</div>
<div id="jquery_jplayer_1" class="jp-jplayer"></div>:这个层是用来装填播放器对象的,播放器本身是需要flash支持的。
<div id="jp_container_1"……:这个层不多说了,就是拼出的控制按钮的样子,播放,暂停等
<div class="jp-playlist">……:这个是用来加载初始化的播放列表的,播放列表的格式写法,稍后会说到。*以上的代码跟官方的DEMO基本一样的,大家也可以从jPlayer官方网站上找到。

JS调用部分:
var JP=new jPlayerPlaylist({
    jPlayer: "#jquery_jplayer_1",
    cssSelectorAncestor: "#jp_container_1"
}, [
{
    title:"remix",
    mp3:"http://yxz.pengkaikj.com/fjmp/resources/remix.mp3",
    oga:"http://yxz.pengkaikj.com/fjmp/resources/remix.ogg"
}
], {
    swfPath: "../../dist/jplayer",
    supplied: "mp3, oga",
    wmode: "window",
    useStateClassSkin: true,
    autoBlur: false,
    smoothPlayBar: true,
    keyEnabled: true
});

JS调用时实际上就是初始化一个Jplay的对象。里面的jPlayer是指存放播放器falsh的容器,然后cssSelectorAncestor是控制那些按钮的容器,中括号内是一个json数组,数组内是初始化的播放列表,至于里面存在MP3和oga两个节点的问题,这里是因为jPlayer里在默认检测资源的时候检测这两种的,你可以根据需要修改,修改方式稍后会提到。

到这里你已经可以实现一个最基本的播放器了,不妨试试吧。

最后要说的是jplayer.playlist.js这个文件,他在插件的dist/add-on文件夹内。

        _createListItem: function(media) {
            var self = this;

            var listItem = "<li><div>";

            listItem += "<a href=‘javascript:;‘ class=‘remove " + this.options.playlistOptions.removeItemClass + "‘>&times;</a>";

            if(media.free) {
                var first = true;
                listItem += "<span class=‘" + this.options.playlistOptions.freeGroupClass + "‘>(";
                $.each(media, function(property,value) {
                    if($.jPlayer.prototype.format[property]) {
                        if(first) {
                            first = false;
                        } else {
                            listItem += " | ";
                        }
                        listItem += "<a class=‘" + self.options.playlistOptions.freeItemClass + "‘ href=‘" + value + "‘ tabindex=‘-1‘>" + property + "</a>";
                    }
                });
                listItem += ")</span>";
            }

            listItem += "<a href=‘javascript:;‘ class=‘" + this.options.playlistOptions.itemClass + "‘ tabindex=‘0‘>" + media.title + (media.artist ? " <span class=‘jp-artist‘>by " + media.artist + "</span>" : "") + "</a>";
            listItem += "</div></li>";

            return listItem;
        },

这个是插件中初始化播放列表的代码,代码里是遍历我们刚才说到的json数组,拼接成预设好的html字符串,输出到html中的,所以看官们可以根据需要自行修改。

add: function(media, playNow) {
            $(this.cssSelector.playlist + " ul").append(this._createListItem(media)).find("li:last-child").hide().slideDown(this.options.playlistOptions.addTime);
            this._updateControls();
            this.original.push(media);
            this.playlist.push(media);

            if(playNow) {
                this.play(this.playlist.length - 1);
            } else {
                if(this.original.length === 1) {
                    this.select(0);
                }
            }
        },

这个是已经实现的添加音乐的方法,类似的方法有很多,这里不再一一列举,需要的可以自行阅读代码,代码本身很漂亮的哟

这里我实现了一个在html中直接添加音乐的方式,以供参考:

function addMusic(){
    var media=new Object();
    media={title:"nawm",mp3:"http://yxz.pengkaikj.com/fjmp/resources/nawm.mp3",oga:"http://yxz.pengkaikj.com/fjmp/resources/nawm.ogg"};
    JP.add(media,false);
}

JP对象是上文中我们提到的初始化的播放器对象,这里可以直接用播放器对象调用各种方法,里面的参数,第一个media参数要等同于json数组里的一个元素的格式,第二个是用来控制是否马上播放新添加的音乐。

以上就是JP的基础DEMO,与官网的DEMO大同小异。

演示地址:http://yxz.pengkaikj.com/Jplayer/examples/blue.monday/demo-02.htm

官方网站:http://www.jplayer.org/(英文版)    http://www.jplayer.cn/(中文版)

时间: 2024-08-04 15:13:54

Jplayer小样的相关文章

一个MP3播放的插件jPlayer

Jplayer小样 最近应公司要求需要一个MP3播放的插件,网上找了很多插件,看来看去还是jPlayer用着最舒服也最容易扩展.所以就找了个资料研究了下,简单做了个小DEMO.支持实时控制列表,常见的播放器功能. jPlayer中可扩展的强大功能很多,暂时也用不上,等着后来人去发掘了. 废话说完了.进入正题. 插件里就这么多东西.大概分出来之后: add-on文件夹里是播放列表控制的js文件,里面预设了很多播放和列表控制的方法. jplayer不用说了,插件的主题. examples……(这个没

利用开源jPlayer播放.flv视频文件

最近工作中用到视频播放,在网上搜索对比了好几款开源播放插件后,觉得 jPlayer 是比较不错的,故作此记录! 接下来先快速的展示一下 利用jPlayer播放.flv视频的效果: 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="tex

[jPlayer] HTML5 Audio &amp; Video for jQuery

----------------------------------------------------------------------------------------------------- The jQuery HTML5 Audio / Video Library jPlayer is the completely free and open source (MIT) media library written in JavaScript. A jQueryplugin, (an

SpringMVC+Spring+Hibernate的小样例

Strusts2+Spring+Hibernate尽管是主流的WEB开发框架,可是SpringMVC有越来越多的人使用了.确实也很好用.用得爽! 这里实现了一个SpringMVC+Spring+Hibernate的小样例.凝视都在代码里面. 项目各包的结构例如以下图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWlhbnR1amF2YQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve

HTML5音频播放,歌词同步,及视频播放功能(JPlayer、JWPlayer、VideoJS)

近期项目中用到音频视频播放.所以就写了一个demo: 这个是JPlayer插件的视频播放: 这个是音频播放,歌词同步: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <!--注意:在IIS上配置的时候,需加入mime映射,否则歌词出不来.在IIS列表中找到"MIME类型".进行加入.lrc类型;.mp4类型文件--> <head>     <

基于jPlayer的三分屏制作

三分屏,这里的三分屏只是在一个播放器里同时播放三个视频,但是要求只有一个控制面板同时控制它们,要求它们共享一个时间轨道.这次只是简单的模拟了一下功能,并没有深入的研究. 首先,需要下载jPlayer,jPlayer是一个JavaScript写的完全免费和开源的jQuery多媒体库插件,我觉得他最大的好处就是兼容性,并且页面也简洁大方,个人比较喜欢.jPlayer可到其官网下载最新版本(http://www.jplayer.cn).并且官网有开发文档和Demo,所以还是比较容易上手的. 关于简单的

基于jQuery的视频和音频播放器jPlayer

jPlayer见网络上资料很少,官方英文资料太坑爹TAT,于是就写一个手记给大家参考下.据我观察,jPlayer的原理主要是用到HTML5,在不支持HTML5的浏览器上使用SWF.做到全兼容,这一点很不错.官方还说明,服务器对于MP3文件不要做GZIP压缩,只是徒增CPU而已.并且在Flash播放GZIP的MP3时会出错. jPlayer简介: 想在网页上播放背景音乐,不想用html标签的方式,因为那样只有音乐全部下载完以后才能播放,还容易出现跨浏览器兼容性的问题,于是选了一款基于jQuery的

JQuery Jplayer play无效的问题

最近折腾个H5. 用到Jplayer, 用着不错,至少兼容性强一些. 但是安卓这辆公共汽车型号实在太多.不小心上了一辆奇葩的就容易震到生活不能自理. 我在一台手机上的五六个浏览器上测试,都可以. 把该页面丢到APP里就卡逼. 最后发现 $(div) .jPlayer('play',1); 无效~ 需要: $(div).jPlayer( "playHead", 1); $(div)('play'); 就好了, 代码量比较多, 排查了一下午. 另外,我能说这里的代码输入超难用么.....

web页面播放音频 jquery.jplayer 插件

<!DOCTYPE html> <html> <head> <title>Demo : jPlayer as an audio player</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link stc="js/jplayer.blue.monday.css"