public class Lrcget {
/**
* @throws IOException
*/
private static HashMap<Long,String> infos;
private static List<Long>lrctime=new ArrayList<Long>();
public static void read(String file) throws IOException{
infos=new HashMap<Long,String>();
File f = new File(file);
InputStream ins = new FileInputStream(f);
InputStreamReader inr = new InputStreamReader(ins);
BufferedReader reader = new BufferedReader(inr);
String text=null;
while((text=reader.readLine())!=null){
gettext(text);
text=null;
}
Collections.sort(lrctime);
for(int n=0;n<lrctime.size();n++){
System.out.println(lrctime.get(n)+":"+infos.get(lrctime.get(n)));
}
}
public static void gettext(String t){
if(t.startsWith("[ti:")){
System.out.println(t.substring(4, t.length()-1));
}else if(t.startsWith("[ar:")){
System.out.println(t.substring(4, t.length()-1));
}else if(t.startsWith("[al:")){
System.out.println(t.substring(4, t.length()-1));
}else if(t.startsWith("[by:")){
System.out.println(t.substring(4, t.length()-1));
}else if(t.startsWith("[offset")){
}else{
String times[]=t.split("]");
for(int n=0;n<times.length-1;n++){
lrctime.add(gettime(times[n].substring(1)));
infos.put(gettime(times[n].substring(1)), times[times.length-1]);
}
}
}
public static Long gettime(String t){
String times[]=t.split(":", 2);
int m = Integer.parseInt(times[0]);
Double s = Double.parseDouble(times[1]);
return (long) (m*1000*60+s*1000);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String filename="D://七里香.lrc";
try {
read(filename);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最近写了个lrc文件解析 希望给正在写播放器的朋友有所帮助
分享到:
相关推荐
### LRC文件解析_显示与编辑功能的实现 #### 一、引言 近年来,随着数字音乐的普及和发展,人们对音乐播放器的功能需求也越来越多样化。除了基本的音乐播放功能外,许多用户还希望能够同步显示歌词,甚至编辑歌词...
lrc文件解析器 基于lrc文件解析器的javascript 安装 使用npm install # install npm install lrc-file-parser -S // import import Lyric from 'lrc-file-parser' 使用脚本链接 < script src =" ./lrc-file-...
这个程序的主要目的是将.LRC文件解析为可读的时间加歌词格式,方便在音乐播放时同步显示。 在LRC歌词解析程序中,`lyrics_process.c`是主要的源代码文件,它包含了实现LRC解析功能的函数和逻辑。开发者可能定义了一...
C语言mp3歌词文件(.lrc)解析源代码for windows版 ...优点:使用双向链表显示上下行歌词、时间较正确、可解析样例外的lrc文件 其它:系统资源的使用没有做进一步优化 作者:david.q@sz 2012.7.30 2263537@qq.com
1. **LRC文件解析**:模块首先需要读取LRC文件,识别并提取出时间标签和歌词内容。这涉及到字符串处理和正则表达式匹配技术,以解析出每个时间标签和对应歌词。 2. **时间戳转换**:时间标签如"[00:30.50]"需要转换...
总的来说,这个基于Java的LRC歌词文件解析工具提供了处理LRC文件的实用功能,可以帮助开发者轻松地在音乐播放应用中实现歌词同步显示。通过理解和利用这个项目,你可以学习到文件操作、文本解析、数据结构设计以及...
“歌词解析”则意味着这个类的主要功能是对LRC文件进行解析,提取出歌词的时间戳和内容信息。“wince”标签则进一步强调了这个类的适用环境,即Windows CE系统。 【压缩包子文件的文件名称列表】:lrc 这个列表...
本文介绍了LRC歌词文件的基本结构,并详细分析了LRC文件解析算法的具体实现过程。该算法利用链表来存储解析出的时间标签和歌词,并且在插入过程中确保了链表的有序性,适用于嵌入式系统的开发环境。通过对这些代码的...
1. 文件读取:程序首先需要打开并读取LRC文件,识别其特有的行格式,这些行通常以"[mm:ss]"的时间戳开始,后面跟着相应的歌词文本。 2. 时间戳解析:时间戳是歌词同步的关键,解析器需要将它们转换成可操作的秒或...
解析LRC文件涉及读取文件内容,识别时间标签(如[00:30.50]),并将其与对应的歌词文本关联起来。 【滚屏输出】滚屏输出是指歌词随着歌曲的播放动态滚动显示,模拟卡拉OK效果。在C语言中实现滚屏输出需要处理文本的...
【正文】 ...这个程序不仅能解析lrc文件,还能将歌词按照时间顺序排序,为音乐播放器提供同步歌词显示的功能。在实际开发中,还需要考虑错误处理、内存管理和性能优化等细节,以确保程序的稳定性和效率。
1. **LRC文件解析**:首先,你需要了解LRC文件的结构。LRC文件由一系列的标签对组成,每个标签对包含时间戳和对应的歌词内容。例如,“[00:30.50] 我是一首歌”。你需要编写代码来解析这些标签对,提取出时间信息和...
《VC下LRC歌词文件解析与结构:C语言实现》 ...通过使用C语言,我们可以有效地控制内存和资源,实现高效的LRC文件解析。理解这种解析过程和链表结构对于开发音乐播放器或者相关应用的程序员来说是非常重要的。
通过研究这些代码,初学者可以学习到如何读取lrc文件、理解其结构,并将歌词按照时间戳进行解析和显示。这通常涉及到文件操作、字符串处理、时间处理等基础知识,对于提高编程技能非常有帮助。 【标签】"lrc歌词...
《Lrc歌词解析器》是基于Java实现的一个程序,用于解析Lrc格式的歌词文件,以便在播放音乐时同步显示歌词。Lrc是一种常见的歌词文件格式,它将歌词按照时间戳进行分段,使得在播放特定时间点时能准确显示对应的歌词...
昨天写了一个程序,只能解析简单的lrc文件,我有修改了一些源程序,现在可以解析很多格式的lrc文件,并弄好歌词的顺序 /** * create by: w397090770 * Email:wyphao.2007@163.com * create data: 2012.3.27 *...
1. **lrc文件解析**:首先,程序需要读取lrc文件,并解析出每句歌词及其对应的时间戳。解析过程涉及到字符串处理和正则表达式匹配,以获取每个时间标签和歌词文本。 2. **时间标签处理**:时间标签通常格式为`[分钟...
这个小软件的作用就在于此:用户可以将他们的LRC歌词文件导入这个程序,程序会解析LRC文件中的时间戳和歌词文本,然后生成一个纯文本的TXT文件,这样汉王电纸书就能同时播放音频和显示匹配的文字。 关于标签中的...
LRC文件结构简单,易于解析,适合嵌入到各种音乐播放器中。 使用C语言进行歌词解析,首先需要了解C语言的基本语法,包括字符串操作、文件I/O和控制结构。以下是一些关键知识点: 1. **文件I/O**:C语言中,我们...