如何在iOS应用中检测音频文件的BPM

时间:2014-02-17 10:32:19

标签: ios objective-c audio avfoundation

我尝试使用AVFoundation框架查找BPM,但结果却获得了0而无法获得BPM。

这是我的代码,

MPMediaItem * mediaItem = [[collection items] objectAtIndex: 0];
NSString * albumIDKey = [MPMediaItem persistentIDPropertyForGroupingType: MPMediaGroupingAlbum];
NSLog(@"mpmediaitem:%@", albumIDKey);
int BPM = [[mediaItem valueForProperty: MPMediaItemPropertyBeatsPerMinute] intValue];
NSString * bpm = [mediaItem valueForProperty: MPMediaItemPropertyBeatsPerMinute];
NSLog(@"bpm:%@", bpm);
NSURL * url = [mediaItem valueForProperty: MPMediaItemPropertyAssetURL];

我在这里遗漏了什么吗?

1 个答案:

答案 0 :(得分:1)

从音频文件随附的元数据中提取BPM。通常不存在。它不是从音频计算的。

另外请注意,任何确实存在的BPM元数据都会因轨道具有恒定速度的假设而存在缺陷。并不总是一个安全的假设。

可以从The Echonest

获取质量音频元数据