Flash Mp3播放器中写的Lrc歌词解析函数

function initLRC() {
 //Split Array
 //trace(myLRC);
 var line_num = -1;
 var Lineinfo_arr, tag_arr, Time_arr;
 Lineinfo_arr = myLRC.split("\r\n");
 for (i=0; i<Lineinfo_arr.length; i++) {
  if (Lineinfo_arr[i] != "") {
   //[00:18.55]
   //[00:18.55]测试测试测试测试测试
   //[01:50.93][00:18.55][00:18.55]测试测试测试测试测试
   //时间标记情况
   if (Lineinfo_arr[i].charAt(0) == "[" and !isNaN(Number(Lineinfo_arr[i].charAt(1))) and !isNaN(Number(Lineinfo_arr[i].charAt(2)))) {
    //每行切成标记数组
    //trace("##"+Lineinfo_arr[i]);
    tag_arr = Lineinfo_arr[i].split("]");
    //过滤[]
    for (j=0; j<tag_arr.length; j++) {
     if (tag_arr[j].charAt(0) == "[") {
      tag_arr[j] = tag_arr[j].substr(1);
     }
    }
    //分配值。
    //00:18.55, 
    //00:18.55, 测试测试测试测试测试
    //01:50.93, 00:18.55, 00:18.55, 测试测试测试测试测试
    for (k=0; k<tag_arr.length-1; k++) {
     //换算时间
     //trace(tag_arr[k]);
     Time_arr = tag_arr[k].split(":");
     var Time_all = 0;
     if (!isNaN(Time_arr[0])) {
      Time_all = Time_all+Number(Time_arr[0])*60;
     }
     if (!isNaN(Time_arr[1])) {
      Time_all = Time_all+Number(Time_arr[1]);
     }
     line_num++;
     lrcData.timer[line_num] = Time_all;
     lrcData.info[line_num] = tag_arr[tag_arr.length-1];
     //trace(lrcData.timer[line_num]+" - "+lrcData.info[line_num]);
    }
   } else {
    //[ti:Pretty Boy][ar:M2M]
    //[al:Shades Of Purple]
    //[by:gby]
    //[offset:500]
    //[askdk]
    //特殊标记情况
    tag_arr = Lineinfo_arr[i].split(":");
    tag_arr[1] = tag_arr[1].slice(0, tag_arr[1].indexOf("]"));
    if (tag_arr[0] == "[offset") {
     offset = tag_arr[1];
    } else {
     offset = 0;
     line_num++;
     lrcData.timer[line_num] = 0;
     if (tag_arr[0] == "[ti") {
      lrcData.info[line_num] = "歌曲:"+tag_arr[1];
     } else if (tag_arr[0] == "[ar") {
      lrcData.info[line_num] = "艺人:"+tag_arr[1];
     } else if (tag_arr[0] == "[al") {
      lrcData.info[line_num] = "专辑:"+tag_arr[1];
     } else if (tag_arr[0] == "[by") {
      lrcData.info[line_num] = "制作:"+tag_arr[1];
     } else if (tag_arr[0].indexOf("[") == 0) {
      lrcData.timer[line_num] = lrcData.timer[line_num-1]+0.01;
      lrcData.info[line_num] = "制作:CenFun";
     } else {
      //其它字符
      //其他标记情况
      lrcData.timer[line_num] = lrcData.timer[line_num-1]+0.01;
      lrcData.info[line_num] = Lineinfo_arr[i];
     }
     //trace(lrcData.timer[line_num]+" - "+lrcData.info[line_num]);
    }
   }
  }
 }
}
//end initLRC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值