見つけたすべてのライブラリを試してみましたが、StackOverflow と Google を何日も検索しても機能しませんでした。ライブラリ: UltraID3Lib、TagLib、IdSharp、Perry Butler による ID3 タグ ライブラリ、ID3Lib、C# ID3 ライブラリ、ID3.Net、... ...
これらのどれも、winamp がファイルに表示するカバー アートを取得できないようです。mp3 を含むフォルダにもカバー アートや jpg などはありません。
すべてのライブラリに埋め込まれたカバー アートのみが表示されますが、他のライブラリは表示されません。winamp mp3 の「ファイル情報」を開くと、「origin」が「embedded」と表示されている場合はすべてのライブラリに表示されますが、origin「folder」が表示されている場合は 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;
}