HTML5实践之歌词同步播放器
歌曲播放我们会发现他的兼容性不是很好,譬如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改进的地方也可以联系我谢谢!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。