网易云音乐播放器缓存文件转换研究

简介

网易云音乐播放器通过网络从服务器下载音频数据进行播放,

它使用了缓存机制,这样避免重复下载同样的音频数据,减轻了服务器的负担,节省了带宽,为共和国节能减排做出了巨大的贡献。

网易云音乐播放器的缓存文件后缀名为uc,故在此称之为忧喜文件。

作者针对忧喜文件做了一定的研究,通过本文进行介绍,并制作了一个演示交流程序“ 忧喜转换器 ”供读者使用体验。

命名格式分析

忧喜文件名命名规则:ID-BitsRate-MD5Text.uc,其中,

ID:对应的音频文件id;

BitsRate:音频位率,例如128k则为128;

MD5Text:音频文件MD5码。

例子:27939136-128-74f6af472c066a7f14b429dbc875e194.uc。

注意,如果想转换为音乐名,则需要查询数据库才可以正确转换出来。

文件格式

忧喜文件格式:

ucfile=<encbytes>

encbytes=*(rawbyte xor maskchar)

rawbyte=<8bit,原始音频字节数据>

maskchar=<8bit,十进制值:163>

简单地说,忧喜文件数据是原始音频文件经过加密后得到,加密方法是通过对每个字节使用maskchar(163)进行异或运算。

转换原理

针对“文件格式”中的分析,如果使用maskchar再次异或,应该就可以得到原始音频文件数据。

例如(pascal语言):a := a xor 163,或者C语言:a = a ^ 0xa3。

经过测试并制作程序,验证确实如此。

忧喜转换器

提供忧喜转换器供大家体验一下:忧喜转换器下载

点击转换后,全自动批量转换并自动打开文件夹。

注意:仅供体验,并不要作为商用,也不要拿来做非法之用。

本文到此结束。

猜你喜欢

转载自blog.csdn.net/henysugar/article/details/114710863