<pre name="code" class="java">// 传递一个krc格式歌词的路径,返回读取并返回解密的字符串
<pre name="code" class="java">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;<span style="white-space:pre"> </span>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);
<span style="font-family: Arial, Helvetica, sans-serif;"><span>              </span>System.out.println(krc_text);
</span><span style="font-family: Arial, Helvetica, sans-serif;"><span>         </span>} catch (Exception e) {
</span><span style="font-family: Arial, Helvetica, sans-serif;"><span>     </span>}
}</span>
<pre name="code" class="java">/*** 使用正则表达式提取中括号中的内容* @param msg* @return */
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) {
<pre name="code" class="java">//由于标题之类的格式也是以[开头以]结尾,所以此时转换为long会转换异常}}return msg;
}

public static String ms2Date(long ms){//格式化时间格式DateFormat formatter = new SimpleDateFormat("mm:ss");Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(ms);return formatter.format(calendar.getTime());
}
// 通过字节读取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;
}

酷狗krc歌词转换为lrc格式相关推荐

  1. php中文歌词,将酷狗krc歌词解析并转换为lrc歌词php源码

    最近在进行一次对酷狗音乐歌词采集时发现酷狗音乐的歌词直接浏览都是"乱码",自己平时所见的歌词都是lrc格式的文本,这种酷狗专用的krc格式的显然是经过特别处理过的,平时用酷狗听音乐 ...

  2. android歌词效果,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果

    引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...

  3. Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果

    引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...

  4. KRSReader酷狗音乐歌词写真图片提取工具(提取KRS文件中的图片)

    最近发现酷狗音乐中的歌词写真图片还是比较给力的,很多友友表示喜欢,但是苦于不懂得如何提取,小菜利用周末闲暇时间写了一个小工具,专门用来提取酷狗音乐歌词写真图片. 废话不多说,软件界面如下: 使用说明: ...

  5. 实现 酷狗音乐 歌词播放效果

    今天将为大家带来 粗略版 酷狗音乐 歌词播放的效果.我们一步一步来.首先做这个是因为有一次公司项目中需要做一个汽车扫描效果的时候,想到来做这个歌词播放效果的.那么我们这次先上效果图: 好的上面的文字是 ...

  6. 怎么把酷狗音乐转换成MP3格式

    听音乐用酷狗,很多人喜欢使用酷狗听歌,也喜欢在酷狗音乐下载歌曲,所以就会碰到一些关于音频格式的问题,大家也都应该了解有很多播放器下载的歌曲有些有专门的格式,问题是这些格式有我们生活中可能会不需要,那么 ...

  7. 学习笔记--实现类似酷狗音乐歌词的效果

    一直以来都是,想起一个问题了,就网上查资料,就看别人的博客.这样发现好多时候,其实这个问题以前查过了,每次都得浪费精力再查,而且结果还不一定好.所以呢,以后遇到问题还是要找个靠谱的地方记录下来,学着在 ...

  8. android仿酷狗界面,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果

    简介 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...

  9. android 渐变歌词,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果

    引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...

  10. 酷狗 KRC 文件的解析

    清理硬盘发现以前写过一个进行一半的代码,这次补全并从硬盘删掉. 格式说明来自 https://shansing.com/read/392/ krc解码并解压缩后得到一个字符串,例子: [id:$000 ...

最新文章

  1. RuntimeError: Expected object of backend CUDA but got backend CPU for argument #4 'mat1'
  2. Maven项目pom.xml报错
  3. debain mariadb10配置root
  4. Spring Boot JdbcTemplate 入门
  5. 万年历c语言编程代码_C语言高效编程与代码优化~
  6. java.util.logging.Logger基础教程
  7. 学考语言成绩c对高考有影响吗_三大影响!考生务必上心,最近正在进行的学考对升学很重要...
  8. java_version干什么的_java类中serialVersionUID的作用及其使用
  9. Android SDK开发包下载地址
  10. jquery统计字数的小功能
  11. springboot+vue+Elementui宠物医院管理系统java项目
  12. 计算机二级excel必考公式,计算机二级必考Excel公式.doc
  13. c语言指数公式_用C语言求幂函数和指数函数的方法
  14. 谈谈This对象的理解
  15. echars x轴单位_ECharts xAxis配置 x坐标轴刻度设置
  16. 什么因素影响阿里云国际版云服务器延迟?
  17. SAP CRM BOL编程基础,代码+详细注释
  18. gt710显卡驱动linux,华硕 GT710-SL-2G驱动下载_asus GT710-SL-2G显卡驱动下载-硬件之家...
  19. 【python】python爬虫requests库详解
  20. bzoj 4408: [FJOI2016]神秘数 主席树

热门文章

  1. mysql集群原理剖析
  2. Windows下 OpenCV 的下载安装教程(详细)
  3. 在VS中格式化代码 快捷键
  4. 计算电磁学中的矩量法及其求解过程介绍
  5. word下禁止显示回车符号
  6. 红帽linux oracle,Oracle Linux与红帽Linux对比
  7. html木马制作教程,利用Internet Explorer Object Data漏洞制做全新网页木马
  8. 科技巨头扎堆打造的“AI搭配师”,能否拯救疫情下的服装业?
  9. 电路基础和电路模拟——复习
  10. c语言控制单片机38译码器,单片机+38译码器控制的数码管怎么点亮?