使用TagLib保存时,Explorer MP3缩略图不会更新#

时间:2016-12-27 03:46:26

标签: c# mp3 taglib taglib-sharp

我正在使用TagLib#来修改一些MP3代码。要为曲目设置专辑封面,我使用以下简单的行:

file.Tag.Pictures = new TagLib.IPicture[] { new TagLib.Picture(filepath) };

它可以正常工作并设置图像。保存文件时,关闭程序并再次加载文件,我正确地看到我指定的图像。显然,它将图像写入文件。

但是当我查看Windows Explorer中的文件时,它没有显示我设置的正确图标,而是显示默认图标。只有当我在Tagscan中重新保存文件时,图标才会更新,然后从我的程序中修改图像开始更改图标以匹配保存的图像。

这是什么问题?如何在不使用其他程序的情况下将图像更改显示为缩略图?

谢谢!

编辑:此处还发现了一些更多信息。我在普通MP3中保存了一张图片并在Notepad中查看了该图片,然后用Tagscan重新保存了该文件,并再次查看了哪些内容发生了变化。这是我找到的数据。

  • 没有形象,没有动过:

ID3 TXXX major_brand isom TXXX minor_version 512 TXXX compatible_brands isomiso2mp41 TSSE Lavf57.51.102 TIT2 test nameTALB test albumTPE2 test artistTCOM test artistTPE1 test artistPRIV SampleStart 0 0 : 0 0 : 0 0

  • 图片添加了我的程序:

ID3 TXXX major_brand isom TXXX minor_version 512 TXXX compatible_brands isomiso2mp41 TSSE Lavf57.51.102 TIT2 test nameTALB test albumTPE2 test artistTCOM test artistTPE1 test artistPRIV SampleStart 0 0 : 0 0 : 0 0 APIC Q image/png ‰PNG IHDR óÿa ‹IDATxœcÀ0¹õ¿yz÷ëÜ~8‰°jxõ‚ø7.ÿŸ;ÿðÿØþÍÿ£{7ÿÏž{ŒAâ¦é½Ä Ò3 †Aâæ™D ²=°y%ŠÈ® h H¡¤{&Ã4ÂøD RÓhœØÆ0~ëj€ÁlDÇD¹ d ÌFd'Ê# 1šY¬Œß IEND®B‚

  • 使用Tagscan重新保存图像的文件:

ID3 TXXX major_brand isom TXXX minor_version 512 TXXX compatible_brands isomiso2mp41 TSSE Lavf57.51.102 TIT2 TXXX % ÿþm a j o r _ b r a n d ÿþi s o m TXXX ' ÿþm i n o r _ v e r s i o n ÿþ5 1 2 TXXX A ÿþc o m p a t i b l e _ b r a n d s ÿþi s o m i s o 2 m p 4 1 TSSE ÿþL a v f 5 7 . 5 1 . 1 0 2 TIT2 ÿþt e s t n a m e TALB ÿþt e s t a l b u m TPE2 ÿþt e s t a r t i s t TCOM ÿþt e s t a r t i s t TPE1 ÿþt e s t a r t i s t PRIV SampleStart 0 0 : 0 0 : 0 0 APIC Ñ image/png ‰PNG IHDR óÿa ‹IDATxœcÀ0¹õ¿yz÷ëÜ~8‰°jxõ‚ø7.ÿŸ;ÿðÿØþÍÿ£{7ÿÏž{ŒAâ¦é½Ä Ò3 †Aâæ™D ²=°y%ŠÈ® h H¡¤{&Ã4ÂøD RÓhœØÆ0~ëj€ÁlDÇD¹ d ÌFd'Ê# 1šY¬Œß IEND®B‚

唯一值得注意的变化是所有东西都被......间隔开了。我意识到在记事本中浏览歌曲数据可能并不是查找信息的最佳方式,但它是我所获得的最佳方式。

1 个答案:

答案 0 :(得分:1)

确保使用ID3版本< = 2.3保存。 Windows资源管理器显示与2.4标签的.mp3扩展名关联的默认文件图标。

ID3v2.4虽然现在已经存在了一段时间,但实际上并不是ID3最兼容的版本。 Windows资源管理器和Groove音乐都无法识别使用该版本保存的标签。我认为Google Play Music也有这个问题。

因此,您最安全的选择是使用ID3v2.3存储代码。