我正在使用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‚
唯一值得注意的变化是所有东西都被......间隔开了。我意识到在记事本中浏览歌曲数据可能并不是查找信息的最佳方式,但它是我所获得的最佳方式。
答案 0 :(得分:1)
确保使用ID3版本< = 2.3保存。
Windows资源管理器显示与2.4标签的.mp3
扩展名关联的默认文件图标。
ID3v2.4
虽然现在已经存在了一段时间,但实际上并不是ID3最兼容的版本。 Windows资源管理器和Groove音乐都无法识别使用该版本保存的标签。我认为Google Play Music也有这个问题。
因此,您最安全的选择是使用ID3v2.3
存储代码。