时时商务社区

标题: 将酷狗krc歌词解析并转换为lrc歌词php源码 [打印本页]

作者: 网络通达    时间: 2018-2-14 05:57

            最近在进行一次对酷狗音乐歌词采集时发现酷狗音乐的歌词直接浏览都是“乱码”,自己平时所见的歌词都是lrc格式的文本,这种酷狗专用的krc格式的显然是经过特别处理过的,平时用酷狗听音乐也没仔细看他的歌词有什么不同,只是与天天静听等不同的是可以逐字高亮显示歌词。
对酷狗的flash播放器进行反编译,发现这段krc解密的ActionScript代码:
public function loaderCompleteHandler(param1:ByteArray) : void{
this.newkeyBytes = [64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105];
var result:* = param1;
var krcBytes:* = new ByteArray();
result.position = 4;
result.readBytes(krcBytes);
var l:* = krcBytes.length;
var i:int;
while (i
根据这段代码可以很快转换成php解析代码:
$enKey = array(64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105);
$krc_content = substr($krc_content,4);
$len = strlen($krc_content);
$krc_compress = '';
for ($k = 0; $k
上面的$krc_content为krc歌词压缩加密的文本内容,得到了解析后的krc明文文本歌词$krc_text,然后就可以很容易的转换成lrc歌词了,如下:
function krc2lrc($krc_content,$glue = "n"){
$enKey = array(64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105);
$krc_content = substr($krc_content,4);
$len = strlen($krc_content);
$krc_compress = '';
for ($k = 0; $k $v){
list($seconds, $millis) = explode('.', $v / 1000);
$lrc_time = date('i:s',1388534400 + $seconds).'.'.substr($millis,0,2);
$lrc_cont = preg_replace("//",'',$matches[3][$k]);
$lrc_text .= "[{$lrc_time}]{$lrc_cont}{$glue}";
}
}
return $lrc_text;
}
简单示例如下:
$content = file_get_contents('1.krc');
echo krc2lrc($content,'
');
            
            
您可能感兴趣的文章:
  • PHP实现网上点歌(二)
  • 谷歌音乐搜索栏的提示功能php修正代码
  • php启用sphinx全文搜索的实现方法
  • php站内搜索关键词变亮的实现方法
  • php 批量查询搜狗sogou代码分享
  • PHP查找与搜索数组元素方法总结
  • php实现搜索一维数组元素并删除二维数组对应元素的方法
  • php获取从百度、谷歌等搜索引擎进入网站关键词的方法
  • PHP实现简单搜歌的方法
            




    欢迎光临 时时商务社区 (http://bbs.4435.cn/) Powered by Discuz! X3.2