Key techniques of Lyrics synchronization

Source: Internet
Author: User
Tags format relative split
The key technology of Word synchronization major upgrades!

Lyrics Time adjustment (New < High efficiency > Ideas)
Automatic tracking engine (arguments)

Run Code Box

<ptml><pead><meta Http-equiv=content-type content=text/html; Charset=gb2312><title> Spectrum Music Audio-visual--thousands of words </title><style type=text/css>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: blackbody; font-size:16px;} #lrcoll td {color: #0080C0; cursor:default;} #lrcbox {color: #00FF00} #lrcfilter {Filter:alpha (opacity=0)} #lrcbc {color: #FFFF33}</style></pead>< Script language= "JavaScript" >self.moveto (0,0); Self.resizeto (screen.availwidth,screen.availheight); </ Script><base ><body leftmargin= "0" topmargin= "0" marginwidth= "0" marginheight= "0" ><span id= " Lrcdata "><!--[ti: Thousands of words][ar: Teresa Teng][au:][al: Teresa Teng-Bao Li Jin 88 Acura series][by:www.aboutplayer.com][00:02.00] Words-Teresa Teng [ 00:09.25] The movie "Colorful Clouds Fly" episode [00:16.5] Ku Courin [00:23.70][00:25.20]<00:25.70> not <00:26.00> know <00:26.35> Road < 00:26.80> for &LT;00:27.30> <00:27.90> <00:28.60> What <00:30.20>[00:31.35]<00:31.85> sorrow <00:32.20> Sorrow <00:32.60> <00:33.00> Wai <00:33.40> around <00:34.15> <00:34.60> i <00:36.60>[00:37.60 ]<00:38.10> i <00:38.45> <00:38.85> day <00:39.25> all <00:39.60> in <00:40.45> pray < 00:41.30> Prayer <00:43.80>[00:43.90]<00:44.20> Fast <00:44.60> drive <00:45.00> walk <00:45.45> Love <00:45.95> <00:46.50> Silence <00:47.75> Lonesome <00:48.80>[00:48.90]<00:49.20> that <00:49.50> Day <00:49.95> up <00:51.30> <00:51.90> you <00:52.25> to <00:52.65> I say <00:53.00> 00:54.40>[00:54.90]<00:55.40> Forever <00:56.05> far <00:56.80>, <00:57.50> love <00:58.60> <00:59.10> i <01:00.70>[01:00.85]<01:01.35> thousand <01:02.00> words <01:03.80> and <01:04.70> Million <01:05.35> language <01:06.80>[01:06.90]<01:07.25> with <01:08.05> wind <01:09.25> cloud <01:10.65 > Swept <01:11.20>;01:12.80>[01:14.00]<01:14.50> not <01:14.85> know <01:15.25> <01:15.65> for <01:16.30> <01:16.80> <01:17.45> What <01:19.25>[01:20.10]<01:20.60> sorrow <01:21.05> sorrow <01:21.40> It <01:21.90> Wai <01:22.35> around <01:23.05> <01:23.40> i <01:25.60>[01:26.40]<01:26.90 > I <01:27.25> every <01:27.65> day <01:28.05> all <01:28.50> in <01:29.50> prayer <01:30.15> <01:32.50>[01:32.60]<01:33.10> Fast <01:33.45> drive <01:33.85> go <01:34.25> love <01:34.90> <01:35.40> silence <01:36.70> Lonesome <01:39.30>[01:40.80][02:03.45]<02:03.95> not <02:04.25> know < 02:04.70> Road <02:05.10> <02:05.75> <02:06.30> what <02:06.95> <02:08.10>[02:09.70] <02:10.20> Sorrow <02:10.55> Sorrow <02:10.95> it <02:11.40> Wai <02:11.85> around <02:12.50> the < 02:12.90> i <02:15.40>[02:15.90]<02:16.40> i <02:16.85> every <02:17.15> day <02:17.50> all <02:17.90> in <02:18.90> Prayer <02:19.60> Prayer <02:22.10>[02:22.20]<02:22.50> Quick <02:22.90> Drive <02:23.30> go to < 02:23.75> Love <02:24.30> <02:24.80> silence <02:26.10> Lonesome <02:27.20>[02:27.30]<02:27.50> that <02:27.85> days <02:28.30> up <02:29.60> <02:30.10> you <02:30.50> to <02:30.90> i < 02:31.40> said <02:32.50>[02:33.15]<02:33.65> forever <02:34.25> far <02:35.05> <02:35.75> Love <02:36.90> <02:37.40> i <02:38.65>[02:39.15]<02:39.65> thousand <02:40.35> words <02:42.15> <02:43.05> <02:43.55> <02:45.30>[02:45.40]<02:45.70> with <02:46.40> wind <02:47.50 > Cloud <02:49.10> swept <02:49.70> <02:50.90>[02:52.40]<02:52.90> not <02:53.25> know < 02:53.65> Road <02:54.05> <02:54.65> <02:55.25> what <02:55.85> <02:57.55>[02:58.50] <02:59.00> Sorrow <02:59.40> Sorrow <02:59.90> it <03:00.35> Wai <03:00.75> around <03:01.35> the < 03:01.80> Me <03:03.65>[03:04.75]<03:05.25> i <03:05.60> <03:06.00> day <03:06.40> all <03:06.80> in <03:07.80> pray <03:08.50 > Prayer <03:11.10>[03:11.20]<03:11.45> Fast <03:12.20> drive <03:12.60> go <03:12.90> Love < 03:13.50> <03:14.10> silence <03:15.45> Lonesome <03:18.45>[03:19.95][03:21.25] Online services are provided by www.aboutplayer.com [ 03:28.97]--></span><center><div><input type= "button" style= "HEIGHT:20; width:90; Font-size:9pt "title=" time overall advance 0.5 seconds/times "value=" lyrics adjustment (+) "> <input type=" button "value=" lyrics adjustment (-) "title=" time overall lag 0.5 seconds/times " Style= "HEIGHT:20; width:90; Font-size:9pt "> <input type=" file "name=" file "style=" Cursor:default; height:20; width:290; Font-size:9pt "title=" 1, play your local song 2, or the transmission of more effective network links "></div><object classid=" clsid : 6bf52a52-394a-11d3-b153-00c04f79faa6 "id=" Aboutplayer "width=" "height=" "" "><param" "" "" name= value= "url" Http://aboutplayer.com/play.asp?id=6&action=url "><param name=" Volume "value=" ><param " EnableconteXtmenu "value=" 0 "><param name=" enableerrordialogs "value=" 0 "></object><div id=" Lrcollbox "style=" Overflow:hidden; height:260; width:480; Background-color: #000000; " ><table border= "0" cellspacing= "0" cellpadding= "0" width= "100%" id= "Lrcoll" style= "position:relative"; Top: -20px; "oncontextmenu=" return false; " &GT;&LT;TR&GT;&LT;TD nowrap height= align= "center" id= "LRCWT1" ></td></tr><tr><td nowrap height= "align=" "Center" id= "Lrcwt2" ></td></tr><tr><td nowrap height= "center" Id= "Lrcwt3" ></td></tr><tr><td nowrap height= "center" align= "id=" ></td> &LT;/TR&GT;&LT;TR&GT;&LT;TD nowrap height= "align=" center "id=" LRCWT5 "></td></tr><tr>< TD nowrap Height= "align=" center "id=" LRCWT6 "></td></tr><tr><td nowrap height=" "align=" Center "><table border=" 0 "cellspacing=" 0 "cellpadding= 0" ><tr><td nowrap Height= "><span id=" lrcwt7 "style=" height:20 "></span></td></tr><tr style=" position: relative; Top: -20px; Z-index:6 "><td nowrap height=" ><div id=, Lrcfilter "style=" Overflow:hidden; width:100%; Color: #FFFF33; Height:20 "></div></td></tr></table></td></tr><tr style=" position: relative; Top: -20px "><td nowrap height=" align= "center" ><table border= "0" cellspacing= "0" cellpadding= "0" > &LT;TR&GT;&LT;TD nowrap height= "a" ><span id= "Lrcbox" style= "height:20" > Lyrics loading </span></td>< /tr><tr style= "position:relative; Top: -20px; Z-index:6; " &GT;&LT;TD nowrap height= "><div id=" LRCBC "style=" Overflow:hidden; height:20; width:0; " ></div></td></tr></table></td></tr><tr style= "position:relative; Top: -40px; " &GT;&LT;TD nowrap height= "align=" center "id=" Lrcwt8 "></td></tr><tr style=" position:relative; Top: -40px;" &GT;&LT;TD nowrap height= "align=" center "id=" Lrcwt9 "></td></tr><tr style=" position:relative; Top: -40px; " &GT;&LT;TD nowrap height= "align=" center "id=" lrcwt10 "></td></tr><tr style=" position:relative; Top: -40px; " &GT;&LT;TD nowrap height= "align=" center "id=" lrcwt11 "></td></tr><tr style=" position:relative; Top: -40px; " &GT;&LT;TD nowrap height= "align=" center "id=" lrcwt12 "></td></tr><tr style=" position:relative; Top: -40px; " &GT;&LT;TD nowrap height= align= "center" id= "lrcwt13" ></td></tr></table></div></ Center><script language= "JavaScript" >var lrco;ffbb = 0;lrcobj = new Lrcclass (Lrcdata.innerHTML.slice (4,-3)); function Lrcclass (TT) {this.inr = []; 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, "$"); 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) * + 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) * + parsefloat (regexp.$2); This.inr[ii].t[this.inr[ii].t.length] = Tse-this.otime; lrcbc.innerhtml = "<font>" + this.inr[ii].n.replace (/&/g, "&"). Replace (/</g, "<"). Replace (/> /g, ">"). Replace (/%=%/g, "</font><font>") + "</font>"; 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; } 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 (Lrco); golrcoll (0); Golrcolor (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 ("www.aboutplayer.com"); Lrcwt1.innertext = ""; Lrcwt2.innertext = ""; Lrcwt3.innertext = ""; Lrcwt4.innertext = ""; Lrcwt5.innertext = ""; Lrcwt6.innertext = ""; Lrcwt8.innertext = ""; Lrcwt9.innertext = ""; Lrcwt10.innertext = ""; Lrcwt11.innertext = ""; Lrcwt12.innertext = ""; Lrcwt13.innertext = "";} function LoadFile (URL) {aboutplayer.url = URL; Aboutplayer.controls.play (); File.select (); Document.selection.clear (); Onfocus=file.blur ();} function bb () {ffbb = ffbb-0.5;} function ff () {FFBB = ffbb + 0.5;} function Lrcrun () {with (Aboutplayer) {Lrcobj.run (controls.currentposition+ FFBB); } if (arguments.length = 0) settimeout ("Lrcrun ()", 10);} function Golrcoll (s) {lrcoll.style.top = n (s++) *3; if (s<=6) Lrco = settimeout ("Golrcoll (" +s+ ")", 100);} function Golrcolor (t) {lrcfilter.filters.alpha.opacity = 100-(t++) *10; if (t<=10) settimeout ("Golrcolor (" +t+) ", 60);} function Killerrors () {return true;} Window.onerror = Killerrors;lrcrun ();</script></body></ptml>

[Ctrl + A ALL SELECT hint: You can modify some of the code, and then run]

Forum UBB Code Easy to achieve the lyrics sync

Windows Media Player Format:
1, [wmp=http://www.aboutplayer.com/a.wmv] lyrics content [/WMP]
2, [wmp=http://www.aboutplayer.com/a.wma] lyrics content [/WMP]
3, [Wmp=http://www.aboutplayer.com/a.mp3] lyrics content [/WMP]
......
Real Player Format:
1, [rmp=http://www.aboutplayer.com/a.rm] lyrics content [/RMP]
2, [Rmp=http://www.aboutplayer.com/a.ra] lyrics content [/RMP]
3, [Rmp=http://www.aboutplayer.com/a.mp3] lyrics content [/RMP]
......

Instance:

[Wmp=mms://222.77.177.180/mp3/2005-09-21/f528b693-e3cc-457d-8aab-6886d5c8f80a.wma] [Ti: a beautiful myth]
[ar: Sun Nan & Han]
[Al: Can't Forget You]
[By:rodick]
[04:41.88] [01:48.65] [00:02.63] The beautiful myth
[00:09.91]rodick Production
[00:16.47] The familiar faces of the people in the dream
[00:23.72] You are the gentleness that I am waiting for
[00:31] Even if the tears drown the world
[00:38.4] I will not let go, every moment alone to bear
[00:53.12] Just because I made a promise
[01:00.43] The familiar touch between you and me
[01:07.86] Love will wake up
[02:57.49] [01:14.3] The Vicissitudes of life Only Love is forever myth
[03:04.48] [01:21.48] Tide rise and fall never regret true love
[03:11.88] [01:28.95] How many painful struggles are there in the night
[03:19.2] [01:36.29] hold hands and let me and you never get away
[01:59.32] snow-frozen love on the pillow
[02:06.65] The cradle of truth will melt
[02:13.87] The fire on the stove in the wind
[02:21.37] never to extinguish
[02:28.8] waiting for flowers to spring and come again
[02:36.02] Ruthless years laugh at me crazy
[02:43.37] The world is deserted by heart like steel
[02:50.7] Missing forever
[03:56.09] [03:26.57] The joys and sorrows of the years Only Love is the myth of Forever
[04:03.24] [03:33.82] No one forgets the old, old oath
[04:10.64] [03:41.28] Your tears into the sky flying butterflies
[04:18.05] [03:48.63] Love is the wind under the wings two hearts are free to fly
[04:28.19] You are the only beautiful myth in my heart [/WMP]

Note:
1, compatible video, audio playback;
2, a theme and all the responses can only be set up a media, the proposal placed in the theme posts;
3, the media path can be an absolute path (such as ' http://aboutplayer.com/a.wmv '), or it can be a relative path (such as ' ... /mp3/a.wma ').



Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.