【MP3歌词解析】解析MP3内嵌的歌词和封面图片 支持库 源码

小肥羊 3月前 348 v 1.1 2024-06-19

现在MP3文件很多都内嵌了歌词和封面,但是需要解析出来,然后供使用。

库功能主要说明:

 //主要功能说明
//1、提供带嵌入的mp3文件,然后解析  
lrcc = yang.mp3tag(filePath) 
//2、获取歌词文件
lrcc.getLyrics()  
//3、根据播放时间取当前应该显示的歌词,以下三种方式均可
lrcc.getLrcBytime("56.555")
lrcc.getLrcBytime(56.555)
lrcc.getLrcBytime("02:56.555")
//4、如果没有嵌入歌词,提供取当前时间歌词方法
lrcc = yang.mp3tag() 
lrcc.setLrc(提供lrc文本);
lrcc.getLrcBytime(56.555)

//结合win.util.lyric库,就可以实现酷酷的歌词显示了

先上图

简单带窗口的代码:

 //范例
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=1225;bottom=522;acceptfiles=1)
winform.add(
button={cls="button";text="给定时间取歌词";left=285;top=467;right=461;bottom=512;z=3};
edit={cls="edit";text="56.665";left=78;top=473;right=243;bottom=501;align="center";edge=1;z=4};
plus={cls="plus";left=24;top=27;right=464;bottom=453;edge=1;z=1};
richedit={cls="richedit";text="RichEdit";left=536;top=24;right=1148;bottom=509;edge=1;multiline=1;vscroll=1;z=2}
)
/*}}*/

import yang.mp3tag;


var filePath = "诺言(郭有才版) - 郭有才.mp3";
lrcc = yang.mp3tag(filePath)
winform.onDropFiles = function(files){
	lrcc.setFile(files[1]); //设置拖拽文件
	
	winform.richedit.text = lrcc.getLyrics();
	winform.plus.setBackground(lrcc.getPicture());
}

winform.richedit.text = lrcc.getLyrics();
winform.plus.setBackground(lrcc.getPicture());


winform.button.oncommand = function(id,event){	
	// 随机个时间
	var  n = math.random(0,200000);
	winform.edit.text = tostring(n/1000);
	
	//lrcc.setLrc(winform.richedit.text);  //如果没有内嵌歌词,这里可以直接给定lrctxt的值,比如从lrc文件加载的文本内容,加载后依然可以调用getLrcBytime
	..console.dump(lrcc.getLrcBytime(winform.edit.text))
}

winform.show();
win.loopMessage();
return winform;

 

附件是完整的库和范例工程

上传的附件:
最新回复 (0)
返回