当我尝试使用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文件而不是所有文件?
答案 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));
}