其实歌词同步的步骤很简单:
1.解析LRC歌词文件
2.LRC 歌词显示
3. 歌词与播放音乐同步
一、读取歌词文件:
/**
* 读取文件
* */
public String read(String path){
TreeMap
String data = "";
try {
File saveFile = new File(path);
FileInputStream stream = new FileInputStream(saveFile);
BufferedReader br = new BufferedReader(new InputStreamReader(
stream, "GB2312"));
int i = 0;
while ((data = br.readLine()) != null) {
data = data.replace("[", "");
data = data.replace("]", "@");
String splistdata[] = data.split("@");
String lrcContenet = splistdata[splistdata.length - 1];
for (int j = 0; j iterator = lrc_read.keySet().iterator();
lrcObject oldval = null;
int i = 0;
StringBuffer sb = new StringBuffer();
while (iterator.hasNext()) {
Object ob = iterator.next();
lrcObject val = (lrcObject) lrc_read.get(ob);
if (oldval == null)
oldval = val;
else {
lrcObject item1 = new lrcObject();
item1 = oldval;
item1.timeline = val.begintime - oldval.begintime;
lrc_map.put(new Integer(i), item1);
sb.append(String.format("[%04d]-[%04d]-%s/n", item1.begintime,
item1.timeline, item1.lrc));
i++;
oldval = val;
}
}
data = sb.toString();
String da = data;
return data;
}
/**
* 得到当前正在播放的那一句的下标 不可能找不到,因为最开头要加一句 自己的句子 ,所以加了以后就不可能找不到了
*
* @return 下标
*/
private int getNowSentenceIndex(long t) {
for (int i = 0; i