我已经尝试了我能找到的每个库,并且几天来一直在搜索 StackOverflow 和谷歌,但没有让它工作。库:UltraID3Lib、TagLib、IdSharp、Perry Butler 的 ID3 标签库、ID3Lib、C# ID3 库、ID3.Net、......
这些似乎都无法获得 winamp 显示文件具有的封面艺术。包含 mp3 的文件夹中也没有封面艺术或 jpg 或任何类似的东西。
只有嵌入式封面艺术出现在每个图书馆中,而其他的则没有。打开winamp mp3“文件信息”时,如果“来源”显示“嵌入”,它会显示在每个库中,但如果它显示来源“文件夹”,那么似乎只有winamp知道它。请注意,任何文件夹中都没有图像,mp3 本身确实包含此图像。
到目前为止,我只找到了 1 个获取这些图像的其他编译应用程序,但我无法找出他们是如何做到的。有人知道我在做什么错吗?(我正在使用 TagLib atm:https ://github.com/mono/taglib-sharp )
public Song(string filePath)
{
var id3 = TagLib.File.Create(filePath);
TrackNumber = (Winamp.PlaylistPosition + 1);
Artist = id3.Tag.FirstArtist;
Title = id3.Tag.Title;
Position = Winamp.GetTrackPosition();
Length = Winamp.GetTrackLength();
AlbumArt = LoadPicture(id3);
Status = Winamp.GetPlaybackStatus();
}
private Bitmap LoadPicture(TagLib.File file)
{
Image currentImage = null;
if (file.Tag.Pictures.Length > 0)
{
TagLib.IPicture pic = file.Tag.Pictures[0];
MemoryStream ms = new MemoryStream(pic.Data.Data);
if (ms.Length > 0)
currentImage = Image.FromStream(ms);
ms.Close();
}
return (Bitmap)currentImage;
}