Как использовать libFLAC для чтения тегов FLAC в c # - PullRequest
3 голосов
/ 13 ноября 2008

Существует ли оболочка .net c # для библиотеки libFLAC? Если нет, то как я могу прочитать теги FLAC, используя libFLAC в приложении .NET Framework c #? Если нет, есть ли другие библиотеки с открытым исходным кодом для чтения тегов flac в c #?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 13 ноября 2008

Есть статья о CodeProject , которая может быть вам полезна.

2 голосов
/ 20 июля 2016

Я знаю, что опаздываю на вечеринку, но в случае, если кому-то нужна эта конкретная информация, вот ссылка на устройство 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 очень просто. Исходный код полностью документирован (на французском). Вот диаграмма для основных классов:

Class diagram

И основной фрагмент кода:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...