| 
 
   
- 帖子
 - 1 
 - 主題
 - 1 
 - 精華
 - 0 
 - 積分
 - 4 
 - 威望
 - 1  
 - 金錢
 - 1  
 
  | 
 關於 同步 的問題
 本帖最後由 PvP_Sun 於 2011-9-6 18:37 編輯  
 
煩請各位大大幫忙一下, 
最近小弟想寫一隻能跟 Jplayer 同步播放歌詞的 javascript . 
 
而使用的方法 大概就是 利用Jplayer播放的秒數  與 Lrc (歌詞) 的秒數 
將兩者同步之後 再把詞顯示出來 
 
而目前碰到的問題點 在於  
 
JPlayer 跟 lrc 同步的問題  
 
 
----------------------------------------------------------- 
 
function sToArray(str)// 解析如“[02:02][00:24]没想到是你”的字符串前放入數組 
{ 
var left=0;//"["的个数 
var leftAr=new Array(); 
for(var k = 0 ; k <str.length;k++) 
{ 
if(str.charAt(k)=="[") 
{ 
leftAr[left]=k; 
left++; 
} 
} 
if(left!=0) 
{ 
for(var i=0;i<leftAr.length;i++) 
{ 
lytext[tflag]=str.substring(str.lastIndexOf("]")+1);//放歌詞 
lytime[tflag]=conSeconds(str.substring(leftAr+1,leftAr+6));//放時間 
tflag++; 
} 
} 
//alert(str.substring(leftAr[0]+1,leftAr[0]+6)); 
} 
 
unction sortAr()//按時間從新排列時間 和 歌詞的數組 
{ 
var temp=null; 
var temp1=null; 
for(var k=0; k<lytime.length;k++) 
{ 
for(var j=0;j<lytime.length-k;j++) 
{ 
if(lytime[j]>lytime[j+1]) 
{ 
temp=lytime[j]; 
temp1=lytext[j]; 
lytime[j]=lytime[j+1]; 
lytext[j]=lytext[j+1]; 
lytime[j+1]=temp; 
lytext[j+1]=temp1; 
} 
} 
} 
} 
 
 
function conSeconds(t)  //把01:25的时间轉化成秒; 
{ 
var m=t.substring(0,t.indexOf(":")); 
var s=t.substring(t.indexOf(":")+1); 
s=parseInt(s.replace(/\b(0+)/gi,"")); 
if(isNaN(s)) 
s=0; 
var totalt=parseInt(m)*60+s; 
//alert(parseInt(s.replace(/\b(0+)/gi,""))); 
if(isNaN(totalt)) 
return 0; 
return totalt; 
} 
 
function getSeconds() // 得到當前播放器播放的時間 
{ 
var t=getPosition(); 
t=t.toString(); //數字轉為字串 
var s=t.substring(0,t.lastIndexOf(".")); //得到當前的秒數 
//alert(s); 
return s; 
} 
 
function getPosition()  //返回當前的時間位置 
{ 
var mm=document.getElementById("jPlayerFlashEvent");   //  <<<  引進播放器 
 
//var mmt= mm ; 
//alert(mmt); 
return mm.currentTime;  // 回傳播放器的秒數 
} 
 
function mPlay() //播放 
{ 
var ms=parseInt(getSeconds()); 
if(isNaN(ms)) 
show(0); 
else 
show(ms); 
window.setTimeout("mPlay()",100) 
} 
  
 
----------------------------------------------------------- |   
 
 
 
 |