需要zLIB专家帮助VB.NET功能

时间:2014-10-27 00:44:05

标签: mp3 zlib id3v2

需要知道我是否在浪费时间。使用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

我使用这些function2转换为十六进制: 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

1 个答案:

答案 0 :(得分:0)

您的“示例函数2”是有效zlib流的十六进制表示形式,从789c开始,解压缩为:

71F3-15-FOO58A77<trivevents><event><name>show Chart</name><time>10000000.000000</time></event><event><name>show once a</name><time>26700000.000000</time></event></trivevents>

然而,“示例功能1”是“示例功能2”的损坏版本,由于某种原因,有几个缺少零位数。

您可以使用.NET DeflateStream类进行解压缩。

相关问题