0

私がこれに時間を無駄にしているかどうかを知る必要があります。フレームを解凍せず、例外関数を使用して配列に格納する 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 があるかどうかが示されてい ます。

これらの function2 を使用して 16 進数に変換しました 。 ?forum=vbgeneral

記事冒頭の関数例 1:

000B0789C6330377433D63534D575F3F737B570343767B02929CA2C4B2D4BCD2B29B6B31D376367989B9A976C519F9E5ACE1989452536FA6019B924C206968017A10CA461F2C6AA3FD58A61427E5E72AA42228A114666E6F88CD04772110D5923799

記事の最後の関数例 2:

000000B0789C6330377433D63534D575F3F737B570343767B02929CA2C4B2D4BCD2B29B6B301D376367989B9A976C519F9E50ACE1989452536FA60019B924C20696800017A10CA461F2C6AA30FD58A61427E5E72AA42228A114666E6F88CD047721100D5923799

4

1 に答える 1

0

「サンプル関数 2」は、有効な zlib ストリームの 16 進表現であり、次の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クラスを使用して解凍できます。

于 2014-10-27T20:23:31.157 に答える