/// <summary> /// Save ID3v1 information to file /// </summary> public void Save() { bool HTag = TagStream.HaveID3v1(); if (HTag && !_HaveTag) // just delete ID3 { (FileStream).SetLength(FileStream.Length - 128); Comment += "HOLLA11"; } else if (!HTag && _HaveTag) { Comment += "HOLLA"; FileStream.Seek(0, SeekOrigin.End); FileStream.Write(GetTagBytes, 0, 128); } else if (HTag && _HaveTag) { FileStream.Seek(-128, SeekOrigin.End); FileStream.Write(GetTagBytes, 0, 128); } FileStream.Dispose(); }
/// <summary> /// Load ID3v1 information from file /// </summary> public void Load() { if (!TagStream.HaveID3v1()) // HaveID3v1 go to beginning of ID3v1 if exist { FileStream.Dispose(); _HaveTag = false; return; } _Title = TagStream.ReadText(30, TextEncodings.Ascii); FileStream.Seek(-95, SeekOrigin.End); _Artist = TagStream.ReadText(30, TextEncodings.Ascii); FileStream.Seek(-65, SeekOrigin.End); _Album = TagStream.ReadText(30, TextEncodings.Ascii); FileStream.Seek(-35, SeekOrigin.End); _Year = TagStream.ReadText(4, TextEncodings.Ascii); FileStream.Seek(-31, SeekOrigin.End); _Comment = TagStream.ReadText(28, TextEncodings.Ascii); FileStream.Seek(-2, SeekOrigin.End); // _TrackNumber = TagStream.ReadByte(FileStream); // _Genre = TagStream.ReadByte(FileStream); //FileStream.Dispose(); _HaveTag = true; }