Taglib flac封面

时间:2015-01-02 05:07:50

标签: c# .net winforms taglib flac

当我尝试使用Taglib从flac文件中获取专辑封面时,我收到此错误

  

索引超出了数组的范围。

即使我知道flac文件包含图像。 我正在使用此代码:

TagLib.File f = TagLib.File.Create(path); 
if(f.Tag.Pictures.Length == 0) return;
var bin = (byte[])(f.Tag.Pictures[0].Data.Data);
songData.Cover = Image.FromStream(new MemoryStream(bin));

代码适用于mp3文件但不适用于flac。 那么如何在c#中获得专辑封面?

编辑:我发现代码可以使用一些flac文件而不是所有文件?

1 个答案:

答案 0 :(得分:1)

如果你想访问数组的元素,你应该总是检查它是否不为null,如果它包含任何元素:

TagLib.File f = TagLib.File.Create(path);
if(f.Tag.Pictures != null && f.Tag.Pictures.Length != 0)
{
    var bin = (byte[])(f.Tag.Pictures[0].Data.Data);
    songData.Cover = Image.FromStream(new MemoryStream(bin));
}