Благодарение на този сайт и няколко други, създадох прост код за четене на тагове ID3v2.3 от MP3 файлове. Това беше страхотно учебно изживяване, тъй като преди това нямах познания за шестнадесетичен / байтов / двоичен и т.н.
Мога успешно да чета данни, но се натъкнах на проблем, който според мен е свързан с използваното кодиране. Разбрах, че текстовите рамки имат байт в началото на „текста“, който описва използваното кодиране и потенциално повече информация в следващите 2 байта...
Пример: Данните от рамка TIT2 започват с байт $03 (шестнадесетичен) преди действителния текст. Този текст се показва правилно, макар и с допълнителен знак в началото, използвайки Encoding.ASCII.GetString
В друг MP3 данните от TIT2 започват $01 и са последвани от $FF $FE, което според мен е свързано с Unicode? Самият текст обаче е разделен, има $00 между всеки текстов знак и това спира данните да се показват във формуляри на Windows (веднага щом се срещне 00, текстът просто спира, така че получавам първия знак и това е ). Опитах се да използвам Encoding.UNICODE.GetString, но това просто изглежда връща безсмислици.
Отпечатването на тези данни на конзола изглежда работи, с интервали между всеки знак, така че четенето на данните работи правилно.
Четох официалната документация за ID3v2.3, но предполагам, че просто не съм достатъчно наясно, за да разбера раздела за кодиране на текст.
Всички отговори или връзки към статии, които могат да бъдат полезни, ще бъдат високо оценени!
Поздрави Рос