42 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|