krc歌词文件解析
2012-08-02 17:10
1206 查看
做卡拉ok项目时,逐字歌词同步需要很多高精度的lrc文件,目前国内有2大家:拥有专利的kugou和没有专利的qq音乐。二者各推出了一种逐字同步歌词文件: krc和qrc。krc有加密处理,直接打开的话只能看到乱码。
查找了很多资料,发现只有java版的半成品解密代码,而没有ios平台可用的。经过我半天努力,终于移植到ios平台。个人劳动成果,转载请注明来源。谢谢!本文提供ios平台的krc文件解密解决办法。
查找了很多资料,发现只有java版的半成品解密代码,而没有ios平台可用的。经过我半天努力,终于移植到ios平台。个人劳动成果,转载请注明来源。谢谢!本文提供ios平台的krc文件解密解决办法。
// // KRC.h // iOSKRCDecoder // // Created by zeng songgen on 12-8-2. // Copyright (c) 2012年 zeng songgen. All rights reserved. // #import <Foundation/Foundation.h> @interface KRC : NSObject { //FileStream fs; //头部4字节 NSMutableData * HeadBytes; //异或加密内容 NSMutableData * EncodedBytes; //解异或加密后ZIP数据 NSMutableData * ZipBytes; //UNZIP后数据 NSData * UnzipBytes; } - (NSString *) Decode: (NSString * )filePath; @end
// // KRC.m // iOSKRCDecoder // // Created by zeng songgen on 12-8-2. // Copyright (c) 2012年 zeng songgen. All rights reserved. // #import "KRC.h" #import "GTMNSData+zlib.h" @implementation KRC //异或加密 密钥 - (NSString *) Decode: (NSString * )filePath { NSString * EncKey = @"@Gaw^2tGQ61-ÎÒni"; //char EncKey[] = { '@', 'G', 'a', 'w', '^', '2', 't', 'G', 'Q', '6', '1', '-', 'Î', 'Ò', 'n', 'i' }; NSData * totalBytes = [[NSMutableData alloc] initWithContentsOfFile:filePath]; //HeadBytes = [[NSMutableData alloc] initWithData:[totalBytes subdataWithRange:NSMakeRange(0, 4)]]; EncodedBytes = [[NSMutableData alloc] initWithData:[totalBytes subdataWithRange:NSMakeRange(4, totalBytes.length - 4)]]; ZipBytes = [[NSMutableData alloc] initWithCapacity:EncodedBytes.length]; Byte * encodedBytes = EncodedBytes.mutableBytes; int EncodedBytesLength = EncodedBytes.length; for (int i = 0; i < EncodedBytesLength; i++) { int l = i % 16; char c = [EncKey characterAtIndex:l]; Byte b = (Byte)((encodedBytes[i]) ^ c); [ZipBytes appendBytes:&b length:1]; } UnzipBytes = [NSData gtm_dataByInflatingData:ZipBytes]; NSString * s = [[[NSString alloc] initWithData:UnzipBytes encoding:NSUTF8StringEncoding] autorelease]; return s; } @end
相关文章推荐
- 酷狗的krc歌词文件的解析
- android开发--mp3播放器项目源代码(xml文件解析,.lrc,.mp3文件下载,同时显示歌词)
- 酷狗 KRC 文件的解析
- C语言 解析lrc歌词文件
- JavaScript解析lrc文件音乐歌词
- c#解析Lrc歌词文件
- C语言 解析lrc歌词文件
- JavaScript解析lrc文件音乐歌词
- C语言 LRC歌词文件解析
- C语言 解析lrc歌词文件
- 自定义View强势来袭,用自定义View实现歌词显示控件上篇之实现歌词文件解析
- JavaScript解析lrc文件音乐歌词
- 将酷狗krc歌词解析并转换为lrc歌词php源码
- ios开发学习--歌词处理--解析lrc文件
- 浅谈歌词文件(LRC、QRC、KRC)
- C语言 解析lrc歌词文件
- JavaScript解析lrc文件音乐歌词
- 将酷狗krc歌词解析并转换为lrc歌词php源码
- ios开发学习- 简易音乐播放器2 (基于iPhone4s屏幕尺寸)-- 歌词解析--plist文件应用--imageNamed图片加载耗内存
- 浅谈歌词文件(LRC、QRC、KRC)