using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TagLib; namespace PlaylistManager { internal class Mp3File { internal string Filename { get; set; } = null!; // Tag-Parameter internal string Title { get; set; } = null!; internal string? Artist { get; set; } internal string? Album { get; set; } internal uint? Year { get; set; } internal string? Genre { get; set; } internal long Length { get; set; } internal byte[]? Cover { get; set; } internal uint? Track { get; set; } public static Mp3File FromFile(string filename) { var mp3file = TagLib.File.Create(filename); Mp3File song = new(); song.Filename= filename; song.Title = mp3file.Tag.Title; song.Artist = mp3file.Tag.FirstPerformer; song.Album = mp3file.Tag.Album; song.Track = mp3file.Tag.Track; if (mp3file.Tag.Year > 0) song.Year = mp3file.Tag.Year; song.Genre = mp3file.Tag.FirstGenre; song.Length = mp3file.Length; song.Cover = mp3file.Tag.Pictures.Where(p => p.Type == PictureType.FrontCover).FirstOrDefault()?.Data.ToArray(); return song; } } }