我目前正在使用xna在Windows Phone 7中构建游戏 我试图从背景歌曲中播放的歌曲中获得每分钟节拍, 我也不太确定我想要的是BPM,我想要的是音乐中的节奏或节奏,速度更快,精灵移动得更快。我现在在想的是,BPM是指来自音乐的频率达到一定范围的常数,例如20 Mhz - 30 MHz, 如果我错了,请随意纠正我,我对音频事物并不熟悉,我尝试过使用MediaLibrary XNA中的VisualizationData,但经过一些谷歌搜索他们说VisualizationData不能与WP7一起使用,我也试过了并且输出是256长度浮点数组包含0值,或者如果我可以用它做一些fft,我会试一试 谢谢......
答案 0 :(得分:3)
就像你说的那样,至于节拍你不能直接得到它,但你必须解释这些数据。如果您个人可以预处理这些音乐并将其与您的标题一起发送,那将是您最好的选择
在XNA中,您实际上只有MediaPlayer.GetVisualizationData可以使用。没有内置任何东西可以让你预先确定这种事情。它使用如下,并为您提供有关正在播放的不同频率的信息。
MediaPlayer.IsVisualizationEnabled = true;
VisualizationData visData = new VisualizationData();
MediaPlayer.GetVisualizationData(visData);
那么你如何采用这种频率的东西,让你的应用程序值得?关于如何做到这一点on the App Hub forums in this thread called "Audio Analysis" in the reply by jwatte有很大的细分。从本质上讲,你会看到低频,并试着弄清楚节拍何时进入。没有什么是完美的,但希望你会得到你赞同的东西。
祝你好运!