嘿编程社区。所以我使用 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