42 lines
1.3 KiB
C#

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;
}
}
}