예제 #1
0
        private Frame CreateV3Frame(Stream stream)
        {
            // Frame ID   $xx xx xx xx (four characters)
            var frameIDBytes = stream.Read(4);

            if (frameIDBytes[0] == 0)
                return null;

            string FrameID = ByteHelper.BytesToString(frameIDBytes);

            Frame F = new Frame(FrameID);
            // Size                               $xx xx xx xx
            int DataSize = ByteHelper.GetInt32FromBytes(stream.Read(4));

            // Flags          $xx xx
            F.SetFlags(stream.Read(2));

            if (FrameID[0] == 'T')
                F.FrameData = readTextFrame(stream, DataSize);
            else if (FrameID == "APIC")
            {
                //<Header for 'Attached picture', ID: "APIC">
                //Text encoding   $xx
                //MIME type       <text string> $00
                //Picture type    $xx
                //Description     <text string according to encoding> $00 (00)
                //Picture data    <binary data>

                F.FrameData = "Images - currently not supported";
                stream.Seek(DataSize, SeekOrigin.Current);
            }
            else
                F.FrameData = ByteHelper.BytesToString(stream.Read(DataSize));
            return F;
        }