如何使用libFLAC读取c#中的FLAC标记

时间:2008-11-13 18:45:42

标签: c# pinvoke

libFLAC库是否有.net c#包装器?如果没有,我如何在.net框架c#应用程序中使用libFLAC读取FLAC标签?如果没有,是否有其他开源库来读取c#中的flac标签?

谢谢!

2 个答案:

答案 0 :(得分:6)

an article on CodeProject可能对您有用。

答案 1 :(得分:2)

我知道我迟到了,但如果有人想要这些具体信息,请点击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>>中,因为您可以拥有多个相同的标签,例如&#34;艺术家,&#34;图片标记将存储在具有ID3PictureFrame属性的BitmapFrame集合中(Windows Imaging Component)。

     

可以使用OggPageReader类读取Ogg流中的任何原始数据。

     

使用OggTaggerFlacTagger非常简单。源代码已完整记录(法文版)。这是主要类的图表:

     

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;