将酷狗krc歌词转换为lrc格式
传递一个krc格式歌词的路径,返回读取并返回解密的字符串
public String krc2lrc(String krc){ try { // 酷狗音乐歌词文件 File krcfile = new File(krc); byte[] zip_byte = new byte[(int) krcfile.length()]; FileInputStream fileinstrm = new FileInputStream(krcfile); byte[] top = new byte[4]; fileinstrm.read(top); fileinstrm.read(zip_byte); int j = zip_byte.length; for (int k = 0; k < j; k++) { int l = k % 16; int tmp67_65 = k; byte[] tmp67_64 = zip_byte; tmp67_64[tmp67_65] = (byte) (tmp67_64[tmp67_65] ^ miarry[l]); } String krc_text = new String(decompress(zip_byte), "utf-8"); krc_text = krc_text.replaceAll("<.*?>", "");//删除krc多余的时间(此时间是单字显示的时间) krc_text = extractMessageByRegular(krc_text); System.out.println(krc_text); } catch (Exception e) { }
}
使用正则表达式提取中括号中的内容
public static String extractMessageByRegular(String msg){ Pattern p = Pattern.compile("(\\[[^\\]]*\\])"); Matcher m = p.matcher(msg); while(m.find()){ String str = m.group().substring(1, m.group().length()-1); try{ String[] split = str.split(","); String spl = "[" + ms2Date(Long.parseLong(split[0])) + "]";//只截取前面的时间(后面的时间为单字时间,舍弃) msg = msg.replace(m.group(), spl); }catch (Exception e) {
//由于标题之类的格式也是以[开头以]结尾,所以此时转换为long会转换异常 } } return msg;
}
通过字节读取krc文件
public static byte[] decompress(byte[] data) { byte[] output = new byte[0]; Inflater decompresser = new Inflater(); decompresser.reset(); decompresser.setInput(data); ByteArrayOutputStream o = new ByteArrayOutputStream(data.length); try { byte[] buf = new byte[1024]; while (!decompresser.finished()) { int i = decompresser.inflate(buf); o.write(buf, 0, i); } output = o.toByteArray(); } catch (Exception e) { output = data; e.printStackTrace(); } finally { try { o.close(); } catch (IOException e) { e.printStackTrace(); } } decompresser.end(); return output;
}
格式化时间格式
public static String ms2Date(long ms){DateFormat formatter = new SimpleDateFormat("mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(ms); return formatter.format(calendar.getTime());
}
转载于:https://my.oschina.net/u/3269106/blog/837888
将酷狗krc歌词转换为lrc格式相关推荐
- php中文歌词,将酷狗krc歌词解析并转换为lrc歌词php源码
最近在进行一次对酷狗音乐歌词采集时发现酷狗音乐的歌词直接浏览都是"乱码",自己平时所见的歌词都是lrc格式的文本,这种酷狗专用的krc格式的显然是经过特别处理过的,平时用酷狗听音乐 ...
- android歌词效果,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- KRSReader酷狗音乐歌词写真图片提取工具(提取KRS文件中的图片)
最近发现酷狗音乐中的歌词写真图片还是比较给力的,很多友友表示喜欢,但是苦于不懂得如何提取,小菜利用周末闲暇时间写了一个小工具,专门用来提取酷狗音乐歌词写真图片. 废话不多说,软件界面如下: 使用说明: ...
- 实现 酷狗音乐 歌词播放效果
今天将为大家带来 粗略版 酷狗音乐 歌词播放的效果.我们一步一步来.首先做这个是因为有一次公司项目中需要做一个汽车扫描效果的时候,想到来做这个歌词播放效果的.那么我们这次先上效果图: 好的上面的文字是 ...
- 怎么把酷狗音乐转换成MP3格式
听音乐用酷狗,很多人喜欢使用酷狗听歌,也喜欢在酷狗音乐下载歌曲,所以就会碰到一些关于音频格式的问题,大家也都应该了解有很多播放器下载的歌曲有些有专门的格式,问题是这些格式有我们生活中可能会不需要,那么 ...
- 学习笔记--实现类似酷狗音乐歌词的效果
一直以来都是,想起一个问题了,就网上查资料,就看别人的博客.这样发现好多时候,其实这个问题以前查过了,每次都得浪费精力再查,而且结果还不一定好.所以呢,以后遇到问题还是要找个靠谱的地方记录下来,学着在 ...
- android仿酷狗界面,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
简介 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- android 渐变歌词,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- 酷狗 KRC 文件的解析
清理硬盘发现以前写过一个进行一半的代码,这次补全并从硬盘删掉. 格式说明来自 https://shansing.com/read/392/ krc解码并解压缩后得到一个字符串,例子: [id:$000 ...
最新文章
- whereis php,Linux命令教程之比较搜索命令whereis与which的区别
- 当人工智能掌管城市,会带来怎样的巨变?
- ubuntu16安装pylearn2 出现错误提示importerror:no module named six.moves
- 为窗体添加 最大化,最小化,还原等 事件
- tensorflow2 训练和预测使用不同的输出层、获取权重参数
- java当前目录指什么_是什么决定了Tomcat Java进程的当前工作目录?
- 360路由器v2刷第三方固件_路由器不拆闪存,编程器刷机技巧,恢复出厂固件办法...
- Linux Shell脚本详细教程
- 利用Python实现简单的相似图片搜索
- UTF-8、BOM、feff的问题
- VScode 中查看本地ip地址
- marshmallow
- NeurIPS 2022 | 北大阿里提出BEVFusion:激光雷达-相机融合新框架
- 【抽奖】RT-Thread Logo升级 | 新起点,“青”装上阵
- C Primer Plus中文 第6版勘误表
- FE节点挂掉且重启报错sleepycat.je.LockTimeoutException: (JE 7.3.7) Lock expired
- IntelliJ IDEA for Mac 2018.1.2 智能Java IDE开发工具 破解版下载
- python百度地图poi_百度地图数据采集手把手教,从此POI数据不再是愁
- python自动发邮件报554错误_python3利用网易smtp服务器报554排查原因
- 硬盘文件无法删除提示文件损毁或无法访问的解决