Beispiel #1
0
        static void Main(string[] args)
        {
            Parser parser = new Parser();
            OpNumber opNumber = new OpNumber();
            string path = @"Z:\ID3\Downplay - The One Who Laughs Last.mp3";
            string newPath = @"Z:\ID3\Remake\Downplay - The One Who Laughs Last.mp3";
            File.Copy(path, newPath, true);

            using (FileStream audio = new FileStream(newPath, FileMode.Open))
            {
                Header header = new Header(parser.Parsing(audio,0,true));
                List<Frame> frame = new List<Frame>();
                long i = audio.Position;
                bool isNoTrash = true; //Первая буква тега не NULL для того чтобы отсеять нулевые теги(или то что идет после APIC)

                while(i<header.Size && isNoTrash)
                {
                    frame.Add(new Frame(parser.Parsing(audio, i, false),header.Ver,i));
                    frame[frame.Count - 1].DecodeStorage(audio);
                    frame[frame.Count - 1].OutTag();
                    i = i + 10 + frame[frame.Count-1].Size;
                    audio.Seek(i, 0);
                    isNoTrash = audio.ReadByte() > 32 ? true : false;
                    audio.Seek(audio.Position-1,0);
                }
            }
        }
Beispiel #2
0
        public Header(byte[] rawData)
        {
            ver = rawData[0];
            OpNumber opNumber = new OpNumber();

            size = opNumber.Arr7BitToNum(rawData);
        }