简介
网易云音乐播放器通过网络从服务器下载音频数据进行播放,
它使用了缓存机制,这样避免重复下载同样的音频数据,减轻了服务器的负担,节省了带宽,为共和国节能减排做出了巨大的贡献。
网易云音乐播放器的缓存文件后缀名为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。
经过测试并制作程序,验证确实如此。
忧喜转换器
提供忧喜转换器供大家体验一下:忧喜转换器下载。
点击转换后,全自动批量转换并自动打开文件夹。
注意:仅供体验,并不要作为商用,也不要拿来做非法之用。
本文到此结束。