如何在Windows Store应用程序中使用C#读取MP3文件的Beats-per-minute标签?

3
我正在尝试读取嵌入在此MP3文件中的BPM,例如:

bpm tag im trying to read

我已经尝试使用

Windows.Storage.FileProperties.MusicProperties

但是它只包含标题、歌手等信息,无法读取我之前显示的BPM。

我正在研究https://taglib.github.io/,它似乎也没有这样的功能。有什么解决方法吗?


MusicProperties.RetrievePropertiesAsync 返回一个字典。尝试请求“TBPM”,它是表示每分钟节拍数的ID3标签。 - Hans Passant
1个回答

2

当您将音乐文件加载到StorageFile中后,您需要在代码中放置类似于以下的调用:

var fileProps = await file.Properties.RetrievePropertiesAsync(null);

这将为您获取所有公开的系统属性列表,以Dictionary<string, object>的形式呈现。

然后,您可以按如下方式获取BPM值:

if (fileProps.ContainsKey("System.Music.BeatsPerMinute"))
{
    var bpmObj = fileProps["System.Music.BeatsPerMinute"];
    if (bpmObj != null)
    {
        var bpm = bpmObj.ToString();
    }
}

你可以在这里找到可用文件属性的完整列表:https://msdn.microsoft.com/zh-cn/library/windows/desktop/dd561977(v=vs.85).aspx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接