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

Explorer MP3 thumbnail not updating when saved with TagLib#

我正在使用 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‚

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‚

唯一值得注意的变化是所有东西都……间隔开来了。我意识到在记事本中翻阅歌曲数据可能不是查找信息的最佳方式,但这是我所拥有的最好的方式。

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

ID3v2.4,虽然现在已经存在了一段时间,但并不是最兼容的 ID3 版本。 Windows Explorer 和 Groove Music 都无法识别使用该版本保存的标签。我觉得 Google Play Music 也有这个问题。

因此,最安全的做法是使用 ID3v2.3.

存储标签