酷狗的krc歌词文件的解析,弄了很久才知道krc文件是加密的,需要转成utf-8,解密,再转ASCII码显示,别人说的,后来找了好久代码,终于找到完整的。

就是两个类

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.Deflater;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.Inflater;
import java.util.zip.InflaterInputStream;public abstract class ZLibUtils
{public static byte[] compress(byte[] data) {byte[] output = new byte[0];Deflater compresser = new Deflater();compresser.reset();compresser.setInput(data);compresser.finish();ByteArrayOutputStream bos = new ByteArrayOutputStream(data.length);try {byte[] buf = new byte[1024];while (!compresser.finished()) {int i = compresser.deflate(buf);bos.write(buf, 0, i);}output = bos.toByteArray();} catch (Exception e) {output = data;e.printStackTrace();} finally {try {bos.close();} catch (IOException e) {e.printStackTrace();}}compresser.end();return output;}public static void compress(byte[] data, OutputStream os) {DeflaterOutputStream dos = new DeflaterOutputStream(os);try {dos.write(data, 0, data.length);dos.finish();dos.flush();} catch (IOException e) {e.printStackTrace();}}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 byte[] decompress(InputStream is) {InflaterInputStream iis = new InflaterInputStream(is);ByteArrayOutputStream o = new ByteArrayOutputStream(1024);try {int i = 1024;byte[] buf = new byte[i];while ((i = iis.read(buf, 0, i)) > 0) {o.write(buf, 0, i);}} catch (IOException e) {e.printStackTrace();}return o.toByteArray();}}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;public class KrcText
{private static final char[] miarry = { '@', 'G', 'a', 'w', '^', '2', 't','G', 'Q', '6', '1', '-', 'Î', 'Ò', 'n', 'i' };public static void main(String[] args) throws IOException{String filenm = "";//krc文件的全路径加文件名System.out.println(new KrcText().getKrcText(filenm));}/*** * @param filenm krc文件路径加文件名* @return krc文件处理后的文本* @throws IOException*/public String getKrcText(String filenm) throws IOException{File krcfile = new File(filenm);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(ZLibUtils.decompress(zip_byte), "utf-8");return krc_text;}
}

酷狗的krc歌词文件的解析相关推荐

  1. 酷狗音乐怎样复制歌词到计算机,酷狗怎么复制歌词和歌曲到mp3上

    酷狗复制歌词和歌曲到mp3方法如下: 1.点击酷狗播放器右边[我的应用]下的[复制MP3];如(图1) 图1 2.点击右上角的[设置],在弹出的选项框中勾选[自动复制歌词].这样,复制歌曲的同时就会复 ...

  2. 如何做出像【酷狗】显示歌词的功能(VC++)

    如何做出像[酷狗]显示歌词的功能(VC++) 编写思路: 根据字体取得边界,然后作为以画刷的方式,根据歌词所设置的时间有慢有快的画过来. (1)调用BeginPath()函数来打开设备上下文的路径支架 ...

  3. 10行代码解析krc歌词文件

    互联网上,我们常见的歌词格式有 LRC.TRC(天天动听歌词).KRC(KuGou ResourCe,酷狗资源文件)和 QRC(QQ音乐歌词):在影视制作中,人们通常会用其他的卡拉 OK 字幕格式,例 ...

  4. 仿千千动听酷狗音乐桌面歌词效果技术关键

    天天动听, 这款Android手机上的音乐播放器,相信不少朋友都曾用过. 不知大家是否注意到,天天动听有一个迷你歌词的特效.  什么效果呢? 就是不管你切到什么画面, 歌词永远显示,并且可以拖动. 类 ...

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

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

  6. 酷狗 KRC 文件的解析

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

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

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

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

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

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

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

最新文章

  1. android canvas绘制圆角_Android自定义View撸一个渐变的温度指示器(TmepView)
  2. (C#)利用反射动态调用类成员[转载]
  3. python将MP3转wave转成numpy
  4. 川大优秀毕业生在GitHub上建了一个项目《深度学习500问》,还未完结就获赞无数
  5. android一天一次弹窗,Android自定义Toast,多次弹出时取消上次弹出,最后一次弹出为准...
  6. 我的Java教程,不断整理,反复学习,记录着那些年大学奋斗的青春
  7. Windows API GetVersionEx()判断系统版本详解
  8. java应用性能指标_性能与可靠性:Java应用为何像F1汽车
  9. Android 应用内直接跳转酷市场
  10. js脚本锁计算机软件,JS使用插件cryptojs进行加密解密数据实例
  11. 小暑至盛夏始吃苦尝酸保健康
  12. qq空间相册查看器_一刻相册相册怎么样?一刻相册和其他相册对比
  13. JavaScript用浏览器书签制作插件(爬虫)
  14. 怎么锁定excel部分单元格不被修改
  15. uni-app银行卡卡号验证
  16. win11/ win10 C盘扩容教程
  17. java.lang.NegativeArraySizeException
  18. 将两张图片合并成一张图片
  19. php重置网页按钮,html中递交按钮和重置按钮代码,要怎么输入?
  20. MOS管驱动电路设计,如何让MOS管快速开启和关闭?

热门文章

  1. 拿板砖的老股民说股市
  2. 玩于鼓掌之中的小老虎机——Tiny Tiger Machine
  3. 抽象类和抽象方法的特点
  4. 五款最棒的Go语言开发工具?
  5. Android 模拟手指滑动
  6. 元宇宙,只是一时兴起的想法?
  7. s18服务器维护,8月11日S15至S18服务器合服公告!
  8. 2012年5月编程语言排行榜:C再次位居第一 Java 占有率持续下降
  9. 解决win10搜索框无法搜索本地应用或无反应
  10. HTML——使用 img 标签插入 avi 文件