Я знаю, что опаздываю на вечеринку, но в случае, если кому-то нужна эта конкретная информация, вот ссылка на устройство Wayback:
http://web.archive.org/web/20140122195044/http://www.codeproject.com/Articles/15332/Assembly-to-Read-and-Write-Ogg-Tags-Vorbis-FLAC-an
В соответствии с правилами StackOverflow и в случае утери даже указанной выше ссылки, текст и графика статьи предоставлены Cyber Sinh, разработчиком MetatOGGer, LyricWiki и Xiph Media Encoder:
Для моего бесплатного проекта MetatOGGer мне понадобилась управляемая библиотека для чтения и записи тегов, содержащихся в потоках Ogg и FLAC. Поскольку я не мог найти ни одного, я решил написать один сам.
Кодеки, поддерживаемые этой библиотекой, включают Vorbis, FLAC и Speex. Техническая информация о файлах Ogg и FLAC также может быть получена с помощью этой библиотеки.
Текстовые теги будут храниться в SortedList<string, List<string>>
, потому что вы можете иметь несколько идентичных тегов, таких как «исполнитель» и т. Д. Теги изображений будут храниться в коллекции ID3PictureFrame
со свойством BitmapFrame
(Windows Imaging Component ).
Можно читать любые необработанные данные в потоке Ogg с классом OggPageReader
.
Использование OggTagger
и FlacTagger
очень просто. Исходный код полностью документирован (на французском). Вот диаграмма для основных классов:
И основной фрагмент кода:
using Luminescence.Xiph;
OggTagger ogg = new OggTagger(@"C:\Song.ogg");
// Load duration
DateTime time = new DateTime(0);
time = time.AddSeconds(ogg.Duration);
// Tags manipulation
string artist = ogg.Artist;
ogg.Title = "Creep";
SortedList<string, List<string>> tags = ogg.GetAllTags();
BitmapFrame cover = ogg.FlacArts[0].Picture;