【发布时间】:2016-12-20 22:41:40
【问题描述】:
嘿编程社区。所以我使用 TagLib Sharp 库从我的 .mp3 中获取元数据。一切都很顺利,只有一个例外。我可以从我的 MP3 中读取它们是整数的评级(设置我的 Musicbee)。意义
Stars
5 = 255
4 = 196
3 = 128
2 = 64
1 = 1
unrated=0
我遇到的问题是我使用 MusicBee 可以设置半星评级。所以我应该从我的评分中得到的价值是:
Stars
5 = 255
4.5 = 224
4 = 196
3.5 = 160
3 = 128
2.5 = 96
2 = 64
1.5 = 48
1 = 1
unrated=0
但是,这是 TagLib 正在读取的内容:
5 = 255
4.5 = 0
4 = 196
3.5 = 0
3 = 128
2.5 = 0
2 = 64
1.5 = 0
1 = 1
这是我用来获取评分的代码:
TagLib.File file = TagLib.File.Create(fi.FullName);
TagLib.Tag tag = file.GetTag(TagLib.TagTypes.Id3v2);
TagLib.Id3v2.PopularimeterFrame tagInfo = TagLib.Id3v2.PopularimeterFrame.Get((TagLib.Id3v2.Tag)tag, "Windows Media Player 9 Series", true);
byte rate = tagInfo.Rating;
//This is where I'm storing the value as a string to process it later
id3.Rating = tagInfo.Rating.ToString();
我的问题有两个方面。我应该/可以使用另一个 usr 来代替“Windows Media Player 9 系列”吗?或者有没有更好的方法让我从我的 mp3 中获得评分?我应该放弃Musicbee的半星评级吗?
另外,taglib 上是否有“帮助”文件?似乎我能在上面找到的所有东西都在这里找到。我什至不知道我在上面的代码中将什么设置为“true”。
提前感谢您的帮助!
* 更新 * 这不是仅仅修复以下错误的答案:
1 = 24 to
1 = 1
【问题讨论】:
标签: c# taglib-sharp