gpt4 book ai didi

c# - 从 .mp3 文件中获取 "initial Key"值

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:54 26 4
gpt4 key购买 nike

I can't find a way to read the "initial key" property from an mp3 file to use the song information in my application.

我已经尝试寻找可以为我完成这项工作的图书馆。我找到了 TagLib#这是获取不同文件格式的标签/属性的非常酷的解决方案。 (包括 mp3)。

我可以使用这个库来获取标题、艺术家、每分钟的节拍等。不幸的是,我只缺少初始键值,这不是特色。

我也试图找到其他支持初始 key 属性的解决方案,但我还没有找到。

I already found a source which seems to address the same issue and solves it with using TagLib#, but I can't figure out how he solved that problem. Use Ctrl + F and search for "Initial" to find the code block. You can find the link here

我将发布我的代码的一小部分,可用于确定关于一首歌曲的不同信息,格式如下:(["bpm"]"title"- "artist")

    var file = TagLib.File.Create(filePath);
return $"[{file.Tag.BeatsPerMinute}]{file.Tag.Title} - {file.Tag.FirstPerformer}";

提前感谢您的任何帮助或建议! :)

最佳答案

试试这个:

public static void Main(string[] args)
{
var path = …
var file = TagLib.File.Create (path);
var id3tag = (TagLib.Id3v2.Tag)file.GetTag (TagTypes.Id3v2);
var key = ReadInitialKey (id3tag);
Console.WriteLine ("Key = " + key);
}

static string ReadInitialKey(TagLib.Id3v2.Tag id3tag)
{
var frame = id3tag.GetFrames<TextInformationFrame>().Where (f => f.FrameId == "TKEY").FirstOrDefault();
return frame.Text.FirstOrDefault() ;
}

在 Windows 10 上,您还可以使用:

async Task<string> ReadInitialKey(string path)
{
StorageFile file = await StorageFile.GetFileFromPathAsync(path);
Windows.Storage.FileProperties.MusicProperties musicProperties = await file.Properties.GetMusicPropertiesAsync();
var props = await musicProperties.RetrievePropertiesAsync(null);
var inkp = props["System.Music.InitialKey"];
return (string)inkp;
}

参见 here有关 MusicProperties 对象和 here 的文档对于有效的音乐属性。

关于c# - 从 .mp3 文件中获取 "initial Key"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56893773/

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