Миниатюра Explorer MP3 не обновляется при сохранении с помощью TagLib #

Я использую TagLib# для редактирования некоторых тегов MP3. Чтобы установить обложку альбома для трека, я использую следующую простую строку:

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

Он работает и устанавливает изображение, как ожидалось. Когда я сохраняю файл, закрываю программу и снова загружаю файл, я правильно вижу изображение, которое я назначил. Очевидно, он записал изображение в файл.

Но когда я смотрю на файл в Windows Explorer, он не показывает правильный значок, который я установил, вместо этого показывает значок по умолчанию. Только когда я повторно сохраняю файл в Tagscan, значок обновляется, а затем изменение изображения из моей программы начинает изменять значок в соответствии с тем, что было сохранено.

В чем здесь проблема? Как разрешить отображение изменений изображения в виде эскиза без использования другой программы?

Спасибо!

EDIT: Вот еще немного информации, обнаруженной в процессе. Я сохранил изображение в простом 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‚

Единственное заметное изменение в том, что все стало... растянутым. Я понимаю, что копаться в данных песни в «Блокноте», вероятно, не лучший способ найти информацию, но это лучшее, что у меня есть.


person tryashtar    schedule 27.12.2016    source источник
comment
Возможно, это не является причиной проблемы, но убедитесь, что вы сохраняете с версией ID3 ‹= 2.3. Проводник Windows показывает значок файла по умолчанию для тегов 2.4. Я думаю, что интервал автоматически компенсируется, поэтому версия тега будет моим лучшим предположением.   -  person Fᴀʀʜᴀɴ Aɴᴀᴍ    schedule 04.03.2017
comment
Эй, большое спасибо! Я поменял TagLib.Id3v2.Tag.DefaultVersion на 3 и все получилось. Это так странно, что Explorer делает это, но спасибо, что сообщили мне!   -  person tryashtar    schedule 17.03.2017
comment
@ FᴀʀʜᴀɴAɴᴀᴍ Не стесняйтесь публиковать это как ответ, и я отмечу это правильно, еще раз спасибо.   -  person tryashtar    schedule 20.03.2017
comment
Пожалуйста. :) Ну, я разместил ответ ниже.   -  person Fᴀʀʜᴀɴ Aɴᴀᴍ    schedule 26.03.2017


Ответы (1)


Убедитесь, что вы сохраняете с версией ID3 ‹= 2.3. Проводник Windows показывает значок файла по умолчанию, связанный с расширением .mp3 для тегов 2.4.

ID3v2.4, хотя и существует уже некоторое время, на самом деле не самая совместимая версия ID3 для использования. Windows Explorer и Groove Music не распознают теги, сохраненные в этой версии. Я думаю, что Google Play Music тоже имеет эту проблему.

Итак, самым безопасным вариантом было бы хранить теги, используя ID3v2.3.

person Fᴀʀʜᴀɴ Aɴᴀᴍ    schedule 26.03.2017