gpt4 book ai didi

C# 使用 TagLib Sharp - 错误的评分数?

转载 作者:行者123 更新时间:2023-11-30 21:43:53 25 4
gpt4 key购买 nike

嘿编程社区。所以我使用 TagLib Sharp 库从我的 .mp3 文件中获取元数据。除了一个异常(exception),一切都很顺利。我可以从我的 MP3 中读取评级,它们是整数(设置我的 Musicbee)。含义

Stars
5 = 255
4 = 196
3 = 128
2 = 64
1 = 1
unrated=0

我遇到的问题是我使用 MusicBee,我可以在其中设置半星评级。所以我应该从我的评分中获得的值(value)是:

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 上是否有“帮助”文件?似乎我能在上面找到的所有东西都可以在这里找到。我什至不知道我在上面的代码中将什么设置为“真”。

提前感谢您的帮助!

* 更新 *这不是一个仅修复错字的答案:

1 = 24   to
1 = 1

最佳答案

根据 ID3v2(3) specification , 框架的目的 4.18 POPM

... is to specify how good an audio file is. Many interesting applications could be found to this frame such as a playlist that features better audiofiles more often than others or it could be used to profile a person's taste and find other 'good' files by comparing people's profiles. The frame is very simple. It contains the email address to the user, one rating byte and a four byte play counter, intended to be increased with one for every time the file is played. The email is a terminated string. The rating is 1-255 where 1 is worst and 255 is best. 0 is unknown. If no personal counter is wanted it may be omitted.

我知道像 MediaMonkey 这样的程序使用此半星评级,但它们与规范不完全兼容。链接的 MediaMonkey 论坛帖子解释了他们如何计算半星。

您还可以在 Mp3tag 的文档中查找“RATING MM”。它讲述了评级的各种实现:http://help.mp3tag.de/main_tags.html

KODI thread展示了他们是如何计算的:

       Values    Rating
-----------------------

0 0 0
0.5 2-22 1
1 1, 23-31 2
1.5 32-63 3
2 64-95 4
2.5 96-127 5
3 128-159 6
3.5 160-195 7
4 196-223 8
4.5 224-254 9
5 255 10

关于C# 使用 TagLib Sharp - 错误的评分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41252370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com