C# 获取音乐节奏或BPM?

C# 获取音乐节奏或BPM?,c#,windows-phone-7,xna,fft,C#,Windows Phone 7,Xna,Fft,我目前正在使用xna在WindowsPhone7中构建一个游戏 我试图从背景歌曲中播放的歌曲中获得每分钟的节拍, 我也不太确定我想要的是BPM,我想要的是音乐中的节奏或节奏,节奏越快,精灵移动得越快。我现在想的是,BPM是指音乐中的频率达到定义的常数范围,例如20 Mhz-30 Mhz, 如果我错了,请随时纠正我,我对音频不太熟悉,我尝试过使用MediaLibrary XNA中的VisualizationData,但在谷歌搜索后,他们说VisualizationData不适用于WP7,我也尝试过

我目前正在使用xna在WindowsPhone7中构建一个游戏 我试图从背景歌曲中播放的歌曲中获得每分钟的节拍, 我也不太确定我想要的是BPM,我想要的是音乐中的节奏或节奏,节奏越快,精灵移动得越快。我现在想的是,BPM是指音乐中的频率达到定义的常数范围,例如20 Mhz-30 Mhz, 如果我错了,请随时纠正我,我对音频不太熟悉,我尝试过使用MediaLibrary XNA中的VisualizationData,但在谷歌搜索后,他们说VisualizationData不适用于WP7,我也尝试过,输出是256长度的浮点数组包含0值,或者如果我可以用它进行fft,我试试看
谢谢你…

就像你刚才说的,至于节拍,你不能直接得到,但你必须解释这些数据。如果你能亲自对这首音乐进行预处理,并将其与你的标题一起发布,这将是你最好的选择

在XNA中,您只需与。没有任何内置的东西可以让你预先决定这类事情。它的使用方式如下所示,可以让您了解正在播放的不同频率的信息

MediaPlayer.IsVisualizationEnabled = true;
VisualizationData visData = new VisualizationData();
MediaPlayer.GetVisualizationData(visData);
那么,您如何利用这些频率信息并使其对您的应用程序有价值呢?有一个关于如何做到这一点的很好的分解。基本上,你要观察低频率,并试图找出节拍何时到来。没有什么是完美的,但希望你能得到一些你认可的东西


祝你好运

你想要的是BPM而不是频率。好的,那么我如何使用xna计算呢?知道吗?但是可视化数据在Windows Phone中不起作用,对吗?目前我正在阅读Content.Pipeline中的AudioContent,但我仍然不知道如何使用它,我无法在我的游戏参考中获得包含Microsoft.Xna.Content.Pipeline的参考,我曾尝试添加参考,但在任何地方都找不到,我也尝试过使用内容库扩展,但它附带了一个关于mscorlib版本的警告,我想我会尝试读取.wav数据,但我也发现在XNA Windows Phone中很难读取二进制文件,生活并不是那么简单,对吗我99%确定它在WP7中。你启用可视化了吗?我忘了将其添加到代码示例中。我会在msdn网站上更新它。。可视化数据在Windows Phone上不可用。在手机上获取可视化数据的任何尝试都将使用0填充VisualizationData类。看看这个: