android lrc歌词解析,Android解析lrc里的歌词

解析记歌词的类。这是解析.lrc文件里的歌词。

解析歌词使用的是输入流,然后吧歌词和歌词时间放在JavaBean的列表里。具体代码如下:

package com.zzm.android.Handler;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.List;

import com.zzm.android.Entity.LyricContent;

/**

* 解析lrc文件中的歌词

* @author nm

* 2014-9-26

*/

public class LrcRead {

private List LyricList;// 歌词内容列表 (包括歌词和时间)

private LyricContent mLyricContent;// 歌词内容 (包括歌词和时间)

public LrcRead() {

mLyricContent = new LyricContent();//歌词内容和时间的实体类对象

LyricList = new ArrayList();//歌词内容和时间是实体类对象列表

}

/**

* 解析lrc文件

*

* @param file

* @throws FileNotFoundException

* @throws IOException

*/

public void Read(String file) throws FileNotFoundException, IOException {

String Lrc_data = "";

File mFile = new File(file);// /mnt/sdcard/我不知道爱是什么.lrc

FileInputStream mFileInputStream = new FileInputStream(mFile);

InputStreamReader mInputStreamReader = new InputStreamReader(mFileInputStream, "GB2312");

BufferedReader mBufferedReader = new BufferedReader(mInputStreamReader);

while ((Lrc_data = mBufferedReader.readLine()) != null) {//[ti:我不知道爱是什么] ar:艾怡良]

Lrc_data = Lrc_data.replace("[", "");// ti:我不知道爱是什么]

Lrc_data = Lrc_data.replace("]", "@");// ti:我不知道爱是什么@

String splitLrc_data[] = Lrc_data.split("@");// [00:00.00, 我爱歌词网 www.5ilrc.com]split是去掉@并在此处用逗号分隔成两个字符串。最后放到一个数组里。

if (splitLrc_data.length > 1) {

mLyricContent.setLyric(splitLrc_data[1]);// [00:00.00, 我爱歌词网 www.5ilrc.com],取数组里面的第2个数据作为歌词。

int LyricTime = TimeStr(splitLrc_data[0]);// 取数组里面的第1个数据,放到TimeStr里都转成秒为单位后出来作为歌词时间。0 400 9490 12490 15860 15860 35560

mLyricContent.setLyricTime(LyricTime);

LyricList.add(mLyricContent);

mLyricContent = new LyricContent();

}

}

mBufferedReader.close();

mInputStreamReader.close();

}

public int TimeStr(String timeStr) {// 00:40.57

timeStr = timeStr.replace(":", ".");//00.40.57

timeStr = timeStr.replace(".", "@");//00@40@57

String timeData[] = timeStr.split("@");//[00, 40, 57]

int minute = Integer.parseInt(timeData[0]);//数组里的第1个数据是分0

int second = Integer.parseInt(timeData[1]);//数组里的第2个数据是秒40

int millisecond = Integer.parseInt(timeData[2]);//数组里的第3个数据是秒57

int currentTime = (minute * 60 + second) * 1000 + millisecond * 10;//40000+570=40570

return currentTime;

}

public List GetLyricContent() {

return LyricList;

}

}.lrc里的歌词是这样的:

[ti:我不知道爱是什么]

[ar:艾怡良]

[al:电视剧《16个夏天》插曲]

[by:珍妮]

[00:00.00]我爱歌词网 www.5ilrc.com

[00:00.40]我不知道爱是什么 - 艾怡良

[00:09.49]电视剧《16个夏天》插曲

[00:12.49]词:艾怡良

[00:15.86]曲:金贵晟

[00:18.96]

[00:32.85]坦白来说

[00:35.56]我不知道爱是什么

[00:40.57]爱不爱你 多爱你

[00:47.71]诸如此类的这些话

[00:52.11]我都不知道是什么

[00:55.72]所以不要与我交谈

[00:59.28]不要揣测过头

[01:03.63]如果这些都模糊了

[01:06.81]你的基本认知

[01:11.10]如果对你来说不够隽永

[01:18.08]那么欢迎来到我的脑中

[01:23.38]这里对爱没有解释

[01:26.75]只有一些细微的撩动

[01:32.70]

[01:33.62]例如 我直视你的眼神

[01:37.77]与她不同

[01:41.17]我走过你身边的角度

[01:45.76]与她不同

[01:48.89]我开口跟你说话的时机

[01:53.46]与她不同

[01:56.45]我用的词汇艰涩

[02:01.01]与她不同

[02:04.15]

[02:21.18]坦白来说

[02:24.07]我不知道爱是什么

[02:28.91]爱不爱你 多爱你

[02:36.40]诸如此类的这些话

[02:40.50]我都不知道是什么

[02:44.08]所以不要与我交谈

[02:47.70]不要揣测过头

[02:51.67]如果这些都模糊了

[02:55.25]你的基本认知

[02:59.55]如果对你来说不够隽永

[03:06.46]那么欢迎来到我的脑中

[03:11.74]这里对爱没有解释

[03:14.84]只有一些细微的撩动

[03:20.65]

[03:25.49]例如 我直视你的眼神

[03:30.16]与她不同

[03:33.31]我走过你身边的角度

[03:37.84]与她不同

[03:41.41]我开口跟你说话的时机

[03:45.75]与她不同

[03:49.02]我用的词汇艰涩

[03:53.29]与她不同

[03:56.87]例如 我真的在乎

[04:00.13]否则不会沉默

[04:04.38]一如以往面无表情

[04:08.73]却更汹涌

[04:12.19]还期待或许是坏了规则

[04:16.54]要的太多

[04:20.40]或许爱是这样吧

[04:24.42]那我不懂

[04:27.70]

[04:29.15]我是独一无二的

[04:32.02]你懂不懂

[04:35.80]我的爱是什么

[04:39.04]你得自己感受

[04:45.38]Lrc By:珍妮 QQ:929964514

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值