需要知道我是否在浪费时间。使用 UltraID3lib,它不会解压缩帧,而是使用异常函数将它们存储在数组中。使用的标志表示它们已压缩但未加密。
如果字节确实是 zLIB 压缩的并且格式正确:我该如何解压缩它们,因为我对 zLIB 完全一无所知,而且我只是一个兼职编码员,小时候被他压在头上。(请慢慢解释)。
MP3 用户定义帧 (TXXX) 包含一个小的 xml 字符串。获取 UltraID3Lib 存储的字节数组的快速(坏示例):
UltraID3.Read(MP3FileName) 'actual file in folder
Dim byte1 As ID3v23EncryptedCompressedFrame
For Each byte1 In UltraID3.ID3v2Tag.Frames
Dim str1 = byte1.FrameBytes
Dim result1 = BytesToString2(str1)
Stop 'lets see what we got
Next
这个网站说如果它的 zLib 压缩的开头附近有 789C: http ://www.xtremevbtalk.com/showthread.php?t=318843
我使用这些函数2转换为十六进制: https ://social.msdn.microsoft.com/Forums/vstudio/en-US/fa53ce74-fd53-4d2a-bc05-619fb9d32481/convert-byte-array-to-hex-string ?forum=vbgeneral
文章开头的示例函数1:
000B0789C6330377433D63534D575F3F737B570343767B02929CA2C4B2D4BCD2B29B6B31D376367989B9A976C519F9E5ACE1989452536FA6019B924C206968017A10CA461F2C6AA3FD58A61427E5E72AA42228A114666E6F88CD04772110D5923799
文章末尾的示例函数2:
000000B0789C6330377433D63534D575F3F737B570343767B02929CA2C4B2D4BCD2B29B6B301D376367989B9A976C519F9E50ACE1989452536FA60019B924C20696800017A10CA461F2C6AA30FD58A61427E5E72AA42228A114666E6F88CD047721100D5923799