歌曲播放我们会发现他的兼容性不是很好,譬如IE上能播放的flash播放器,再firfox或者chrome上就不是很好的应用了,因为有插件的阻碍!HTML5的出现让这一切成为了可能,但是播放器虽然播放了,我们还要关注一下用户的体验度,所以,我们就写了一个HTML兼容的播放器!向下兼容IE6-9、chrome、firfox、opera等主流播放器,应该是全兼容!实现原理代码给大家奉上!

001 <!doctype html>
002 <html>
003 <head>
004 <meta charset=utf-8>
005 <title>歌词同步播放器-powered by widuu xiaowei</title>
006 <meta http-equiv="Cache-Control" content="no-cache">
007 <meta name="viewport" content="width=device-width; initial-scale=1.0; minimum-scale=1.0; maximum-scale=1.4">
008 <meta name="MobileOptimized" content="240">
009 <link href="/mp3/css/blue.css" rel="stylesheet" type="text/css" />
010 <script type="text/javascript" src="/mp3/js/jquery.js"></script>
011 <script type="text/javascript" src="/mp3/js/jquery.jplayer.js"></script>
012 <script type="text/javascript" src="/mp3/js/lrc.js"></script>
013 <style type="text/css">
014 * { margin:0; padding:0; }
015 ul, ol, dl { list-style:none; }
016 .content li.hover{ color:red; }
017 .content{ width:402px; height:200px; background:#ccc; overflow:hidden; padding:10px;}
018 </style>
019 <script>
020 //<![CDATA[
021 $(document).ready(function(){
022     $("#jquery_jplayer_1").jPlayer({
023         ready: function (event) {
024             $(this).jPlayer("setMedia", {
025                 mp3:"yangcong.mp3" //mp3的播放地址
026             }).jPlayer("play");
027         },
028         timeupdate: function(event) {
029                 if(event.jPlayer.status.currentTime==0){
030                     time = "";
031                 }else {
032                     time = event.jPlayer.status.currentTime;
033                 }
034                  
035             },
036             play: function(event) {
037                 //点击开始方法调用lrc。start歌词方法 返回时间time
038                  
039                 if(event.jPlayer.status.currentTime==0){
040                     $("#jquery_jplayer_1").jPlayer("pause",1);
041                 }
042                  
043                 if($('#lrc_content').val()!==""){
044                 $.lrc.start($('#lrc_content').val(), function() {
045                     return time;
046                 });
047                 }else{
048                     $(".content").html("没有字幕");
049                 }
050             },
051             repeat: function(event) {
052               if(event.jPlayer.options.loop) {
053                 $(this).unbind(".jPlayerRepeat").bind($.jPlayer.event.ended + ".jPlayer.jPlayerRepeat", function() {
054                   $(this).jPlayer("play");
055                 });
056               } else {
057                 $(this).unbind(".jPlayerRepeat");
058               }
059             },
060         swfPath: "/js",         //存放jplayer.swf的决定路径
061         solution:"html, flash", //支持的页面
062         supplied: "mp3",        //支持的音频的格式
063         wmode: "window"      
064          
065     });
066     $("#lrc_content").hide();
067 });
068 //]]>
069 </script>
070 </head>
071 <body>
072 <textarea id="lrc_content" name="textfield" cols="70" rows="10">
073 [ar:测试用 ]
074 [00:03.00]洋葱
075 [00:06.00]演唱:平安
076 [00:09.00]
077 [00:11.38]如果你眼神能够为我片刻的降临
078 [00:21.23]如果你能听到心碎的声音
079 [00:28.88]盘底的洋葱像我永远是配角戏
080 [00:35.74]偷偷的看着你偷偷的隐藏着自己
081 [00:43.48]
082 [00:44.90]如果你愿意一层一层
083 [00:48.46]一层的剥开我的心
084 [00:52.66]你会发现你会讶异
085 [00:56.40]你是我最压抑最深处的秘密
086 [01:00.26]如果你愿意一层一层
087 [01:03.69]一层的剥开我的心
088 [01:07.76]你会鼻酸你会流泪
089 [01:11.60]只要你能听到我看到我的全心全意
090 [01:18.30]
091 [01:19.11]如果你愿意一层一层
092 [01:22.57]一层的剥开我的心
093 [01:26.66]你会发现你会讶异
094 [01:30.41]你是我最压抑最深处的秘密
095 [01:34.48]如果你愿意一层一层
096 [01:37.58]一层的剥开我的心
097 [01:41.51]你会鼻酸你会流泪
098 [01:45.15]只要你能听到我看到我的全心全意
099 [01:53.55]
100 [01:55.65]你会鼻酸你会流泪
101 [01:59.84]只要你能听到我看到我的全心全意
102 [02:12.57]
103 </textarea>
104  
105  
106 <p>
107  
108         <div id="jquery_jplayer_1" class="jp-jplayer"></div>
109  
110         <div id="jp_container_1" class="jp-audio">
111             <div class="jp-type-single">
112                 <div class="jp-gui jp-interface">
113                     <ul class="jp-controls">
114                         <li><a href="javascript:;" class="jp-play" tabindex="1">play</a></li>
115                         <li><a href="javascript:;" class="jp-pause" tabindex="1">pause</a></li>
116                         <li><a href="javascript:;" class="jp-stop" tabindex="1">stop</a></li>
117                         <li><a href="javascript:;" class="jp-mute" tabindex="1" title="mute">mute</a></li>
118                         <li><a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute">unmute</a></li>
119                         <li><a href="javascript:;" class="jp-volume-max" tabindex="1" title="max volume">max volume</a></li>
120                     </ul>
121                     <div class="jp-progress">
122                         <div class="jp-seek-bar">
123                             <div class="jp-play-bar"></div>
124                         </div>
125                     </div>
126                     <div class="jp-volume-bar">
127                         <div class="jp-volume-bar-value"></div>
128                     </div>
129                     <div class="jp-time-holder">
130                         <div class="jp-current-time"></div>
131                         <div class="jp-duration"></div>
132  
133                         <ul class="jp-toggles">
134                             <li><a href="javascript:;" class="jp-repeat" tabindex="1" title="repeat">repeat</a></li>
135                             <li><a href="javascript:;" class="jp-repeat-off" tabindex="1" title="repeat off">repeat off</a></li>
136                         </ul>
137                     </div>
138                 </div>
139                 <div class="jp-title">
140                     <ul>
141                         <li>mp3player powered by xiaowei</li>
142                     </ul>
143                 </div>
144                 <div class="jp-no-solution">
145                     <span>Update Required</span>
146                     To play the media you will need to either update your browser to a recent version or update your <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a>.
147                 </div>
148             </div>
149         </div>
150                 <div class="content"><ul id="lrc_list">
151         点击开始播放……
152         </ul></div><br />
153 </body>
154  
155 </html>

剩下的就是我的组件了,大家可以下载一下!http://pan.baidu.com/share/link?shareid=225514&uk=3172762343这是下载地址哈!

如果您有什么不明白的,可以联系我,如果您还有什么需求也可以联系我,发现bug改进的地方也可以联系我谢谢!

HTML5实践之歌词同步播放器的更多相关文章

  1. 论HTML5 Audio 标签歌词同步的实现

    HTML5草案里面其实有原生的字幕标签(<track> Tag)的,但使用的是vtt格式的文件,非常规的字幕(.sub, .srt)或歌词文件(.lrc). 用法如下(代码来自W3Scho ...

  2. HTML5 audio标签自制音乐播放器

    相关技能 HTML5+CSS3(实现页面布局和动态效果) Iconfont(使用矢量图标库添加播放器相关图标) LESS (动态CSS编写) jQuery(快速编写js脚本) gulp+webpack ...

  3. [Python]简易terminal歌词滚动播放器

    整合了网易云的一些API,想写一个terminal版的音乐播放器,但是还没有想好写成什么样子. 暂时写了一个必须又的功能:带歌词滚动的播放器,用了pygame里的mixer来播放音乐. 准备有时间的时 ...

  4. html5+css3酷炫音频播放器代码

    1. [代码][JavaScript]代码         (function($){    jQuery.fn.extend({        "initAudio" : fun ...

  5. HTML5音频(自定义mp3播放器源码)

    audio对象 src兼容.ogg .wav .mp3 <audio controls src='data/imooc.wav'></audio> width autoplay ...

  6. C#winfrom播放器动态加载歌词

    上周我们进行了结业项目答辩,是播放器项目.有一个关于播放器变唱歌边加载歌词的方法特别有意思,像酷狗那样子歌词和歌曲同步滚播的样子. 这里的工具是Visual Studio 2013,使用语言是C#和. ...

  7. 7款超具个性的HTML5播放器

    这篇文章我们要分享一些很有个性的HTML5音乐播放器和视频播放器,它们都具有播放器的大部分功能,并以HTML5和JavaScript实现.这些HTML5播放器有着非常漂亮的外观,很多你都无需自己重新定 ...

  8. 基于jQuery虾米音乐播放器样式代码

    分享一款基于jQuery虾米音乐播放器样式代码.这是一款基于jquery+html5实现的虾米音乐播放器源码下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div c ...

  9. Android VLC播放器二次开发3——音乐播放(歌曲列表+歌词同步滚动)

    今天讲一下对VLC播放器音频播放功能进行二次开发,讲解如何改造音乐播放相关功能.最近一直在忙着优化视频解码部分代码,因为我的视频播放器需要在一台主频比较低的机器上跑(800M主频),所以视频解码能力受 ...

随机推荐

  1. Python的面向对象3

    接下来,我们接着讲Python的面向对象,在上一次的博客中,我们详细介绍了类与对象的属性,今天,我们来详细介绍一下面向对象中的方法! 1.定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外 ...

  2. c# 之 New新知

    本人从事.NET工作已经一段时间,毕业之前一直想着做C++的,后来因为各种原因(跟学校导师相关),走向了.NET之路,从而时不时补一下.net的基础知识,因为自己的.NET知识还不是很扎实.近期每天早 ...

  3. nexus3添加第三方jar

    最近在看maven的打包及管理,然後就看到nexus,自己在安裝的時候就下載了最新版的nexus-3.2.0-01-win64,按照文档部署后启动,浏览.之前一致使用的是2.0的,所以还是需要导出点点 ...

  4. AppStore 审核中文版 --- 程序员必看

    App Store审核指南中文版(2014.10.11更新) 2014-11-03 程序猿 苹果在9月3日对App Store审核指南进行了重大更新,新添加了扩展.HealthKit.HomeKit以 ...

  5. The Bellman-Ford algorithm

    This algorithm deals with the general case, where G is a directed, weight graph, and it can contains ...

  6. C语言中的volatile

    转自C语言的那些小秘密之volatile volatile的重要性对于搞嵌入式的程序员来说是不言而喻的,对于volatile的了解程度常常被不少公司在招聘嵌入式编程人员面试的时候作为衡量一个应聘者是否 ...

  7. JAVA与编译语言及解释语言的关系

    转自JAVA结合了编译和解释执行的优点 编译型语言是一次性编译成机器码,脱离开发环境独立运行,所以运行效率较高,但是由于编译成的是特定平台上机器码,所以可移植性差. 编译型语言的典型代表有C.C++. ...

  8. 【BZOJ1901】 Zju2112 Dynamic Rankings(树套树)

    [题意] 给定一个含有n个数的序列a[1],a[2],a[3]--a[n], 程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]--a[j]中第k小的数是多少(1≤k ...

  9. 一个sql导致temp表空间爆掉

    Buffer sort引发的血案 今天遇到的一个问题,在线系统上,有两张表,test1大概50G,test2大概200G,需要查询出来test1表中部分记录,并且这些记录不存在test2表中.于是就写 ...

  10. Linux内存调试工具初探-MEMWATCH

    C 语言作为 Linux 系统上标准的编程语言给予了我们对动态内存分配很大的控制权.这种自由可能会导致严重的内存管理问题,可能导致程序崩溃或随时间的推移导致性能降级. 内存泄漏(即 malloc()  ...