HTML网页歌曲播放器+歌词同步
歌曲试听
TD { FONT-SIZE: 9pt; LINE-HEIGHT: 17px; } BODY{ FONT-SIZE: 9pt; LINE-HEIGHT:
17px; margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom:
0px; } #lrcollbox td, #lrcollbox font {font-family: 黑体; font-size: 16px;}
#lrcoll td { color:#0080C0; cursor: default; } #lrcbox { color:#00FF00
} #lrcfilter { filter: alpha(opacity=0) } #lrcbc { color:#FFFF33 }
self.moveTo(0, 0);
self.resizeTo(screen.availWidth, screen.availHeight);
[01:13.00]你一定会离去
[01:16.00]但明天你是否依然爱我
[02:50.00][01:24.00]所有的故事
[02:52.00][01:27.00]只能有一首主题歌
[02:57.00][01:31.00]我知道你最后的选择
[03:04.00][01:38.00]所有的爱情
[03:06.00][01:41.00]只能有一个结果
[03:11.00][01:45.00]我深深知道
[03:13.00][01:48.00]那绝对不是我
[03:19.00][01:54.00]既然曾经爱过
[03:22.00][01:56.00]又何必真正拥有你
[03:26.00][02:00.00]即使离别
[03:29.00][02:03.00]也不会有太多难过
[03:33.00][02:07.00]午夜里的旋律
[03:36.00][02:10.00]一直重复着那首歌
[03:48.00][03:40.00][02:15.00]Will you still love me tomorrow
[url:https://www.360docs.net/doc/09624722.html,/asp/lrc.asp?id=20010327cXbn6R]
-->
| ||
var lrc0;
var lrc1;
var min;
lrcobj = new lrcClass(lrcdata.innerHTML.slice(4, -3));
function lrcClass(tt) {
this.inr = [];
this.min = [];
this.oTime = 0;
this.dts = -1;
this.dte = -1;
this.dlt = -1;
this.ddh;
this.fjh;
lrcbc.style.width = 0;
if (/\[offset\:(\-?\d+)\]/i.test(tt)) this.oTime = RegExp.$1 / 1000;
tt = tt.replace(/\[\:\][^$\n]*(\n|$)/g, "$1");
tt = tt.replace(/\[[^\[\]\:]*\]/g, "");
tt = tt.replace(/\[[^\[\]]*[^\[\]\d]+[^\[\]]*\:[^\[\]]*\]/g, "");
tt = tt.replace(/\[[^\[\]]*\:[^\[\]]*[^\[\]\d\.]+[^\[\]]*\]/g, ""); tt = tt.replace(/<[^<>]*[^<>\d]+[^<>]*\:[^<>]*>/g, "");
tt = tt.replace(/<[^<>]*\:[^<>]*[^<>\d\.]+[^<>]*>/g, "");
while (/\[[^\[\]]+\:[^\[\]]+\]/.test(tt)) {
tt = tt.replace(/((\[[^\[\]]+\:[^\[\]]+\])+[^\[\r\n]*)[^\[]*/, "\n"); var zzzt = RegExp.$1;
/^(.+\])([^\]]*)$/.exec(zzzt);
var ltxt = RegExp.$2;
var eft = RegExp.$1.slice(1, -1).split("][");
for (var ii = 0; ii < eft.length; ii++) {
var sf = eft[ii].split(":");
var tse = parseInt(sf[0], 10) * 60 + parseFloat(sf[1]);
var sso = {
t: [],
w: [],
n: ltxt
}
sso.t[0] = tse - this.oTime;
this.inr[this.inr.length] = sso;
}
}
this.inr = this.inr.sort(function(a, b) {
return a.t[0] - b.t[0];
});
for (var ii = 0; ii < this.inr.length; ii++) {
while (/<[^<>]+\:[^<>]+>/.test(this.inr[ii].n)) {
this.inr[ii].n = this.inr[ii].n.replace(/<(\d+)\:([\d\.]+)>/, "%=%"); var tse = parseInt(RegExp.$1, 10) * 60 + parseFloat(RegExp.$2); this.inr[ii].t[this.inr[ii].t.length] = tse - this.oTime;
}
lrcbc.innerHTML = "" + this.inr[ii].n.replace(/&/g, "&").replace(//g, ">").replace(/%=%/g, "") + "";
var fall = lrcbc.getElementsByTagName("font");
for (var wi = 0; wi < fall.length; wi++) this.inr[ii].w[this.inr[ii].w.length] = fall[wi].offsetWidth; this.inr[ii].n = lrcbc.innerText;
}
for (var ii = 0; ii < this.inr.length - 1; ii++) this.min[ii] = Math.floor((this.inr[ii + 1].t[0] - this.inr[ii].t[0]) * 10);
this.min.sort(function(a, b) {
return a - b
});
min = this.min[0] / 2;
this.run = function(tme) {
if (tme < this.dts || tme >= this.dte) {
var ii;
for (ii = this.inr.length - 1; ii >= 0 && this.inr[ii].t[0] > tme; ii--) {}
if (ii < 0) return;
this.ddh = this.inr[ii].t;
this.fjh = this.inr[ii].w;
this.dts = this.inr[ii].t[0];
this.dte = (ii < this.inr.length - 1) ? this.inr[ii + 1].t[0] : aboutplayer.currentMedia.duration;
lrcwt1.innerText = this.retxt(ii - 7);
lrcwt2.innerText = this.retxt(ii - 6);
lrcwt3.innerText = this.retxt(ii - 5);
lrcwt4.innerText = this.retxt(ii - 4);
lrcwt5.innerText = this.retxt(ii - 3);
lrcwt6.innerText = this.retxt(ii - 2);
lrcwt7.innerText = this.retxt(ii - 1);
lrcfilter.innerText = this.retxt(ii - 1);
lrcwt8.innerText = this.retxt(ii + 1);
lrcwt9.innerText = this.retxt(ii + 2);
lrcwt10.innerText = this.retxt(ii + 3);
lrcwt11.innerText = this.retxt(ii + 4);
lrcwt12.innerText = this.retxt(ii + 5);
lrcwt13.innerText = this.retxt(ii + 6);
this.print(this.retxt(ii));
if (this.dlt == ii - 1) {
clearTimeout(lrc0);
if (lrcoll.style.pixelTop != 0) lrcoll.style.top = 0;
golrcoll(0);
clearTimeout(lrc1);
lrcfilter.filters.alpha.opacity = 100;
golrcolor(0);
} else if (parseInt(lrcoll.style.top) != -20) {
clearTimeout(lrc0);
lrcoll.style.top = -20;
clearTimeout(lrc1);
lrcfilter.filters.alpha.opacity = 0;
}
this.dlt = ii;
}
var bbw = 0;
var ki;
for (ki = 0; ki < this.ddh.length && this.ddh[ki] <= tme; ki++) bbw += this.fjh[ki]; var kt = ki - 1;
var sc = ((ki < this.ddh.length) ? this.ddh[ki] : this.dte) - this.ddh[kt];
var tc = tme - this.ddh[kt];
bbw -= this.fjh[kt] - tc / sc * this.fjh[kt];
if (bbw > lrcbox.offsetWidth) bbw = lrcbox.offsetWidth;
lrcbc.style.width = Math.round(bbw);
}
this.retxt = function(i) {
return (i < 0 || i >= this.inr.length) ? "": this.inr[i].n;
}
this.print = function(txt) {
lrcbox.innerText = txt;
lrcbc.innerText = txt;
}
this.print("https://www.360docs.net/doc/09624722.html,");
lrcwt1.innerText = "";
lrcwt2.innerText = "";
lrcwt3.innerText = "";
lrcwt4.innerText = "";
lrcwt5.innerText = "";
lrcwt6.innerText = "";
lrcwt7.innerText = "";
lrcfilter.innerText = "";
lrcwt8.innerText = "";
lrcwt9.innerText = "";
lrcwt10.innerText = "";
lrcwt11.innerText = "";
lrcwt12.innerText = "";
lrcwt13.innerText = "";
}
function lrcrun() {
with(aboutplayer) {
lrcobj.run(controls.currentPosition);
}
if (arguments.length == 0) setTimeout("lrcrun()", 10);
}
function golrcoll(s) {
lrcoll.style.top = -(s++) * 2;
if (s <= 9) lrc0 = setTimeout("golrcoll(" + s + ")", min * 10);
}
function golrcolor(t) {
lrcfilter.filters.alpha.opacity = 110 - (t++) * 10;
if (t <= 10) lrc1 = setTimeout("golrcolor(" + t + ")", min * 10); }
window.onerror = function() {
return true;
}
lrcrun();
各视频格式播放代码
1。avi格式 代码片断如下: <object id="video" width="400" height="200" border="0" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> <param name="ShowDisplay" value="0"> <param name="ShowControls" value="1"> <param name="AutoStart" value="1"> <param name="AutoRewind" value="0"> <param name="PlayCount" value="0"> <param name="Appearance value="0 value="""> <param name="BorderStyle value="0 value="""> <param name="MovieWindowHeight" value="240"> <param name="MovieWindowWidth" value="320"> <param name="FileName" value="/Mbar。avi"> <embed width="400" height="200" border="0" showdisplay="0" showc autostart="1" autorewind="0" playcount="0" moviewindowheight="240" moviewindowwidth="320" filename="/Mbar。avi" src="Mbar。avi"> </embed> </object> 2。mpg格式 代码片断如下: <object classid="clsid:05589FA1-C356-11CE-BF01-00AA0055595A" id="ActiveMovie1" width="239" height="250">
HTML网页歌曲播放器+歌词同步