我尝试使用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];
我在这里遗漏了什么吗?
答案 0 :(得分:1)
从音频文件随附的元数据中提取BPM。通常不存在。它不是从音频计算的。
另外请注意,任何确实存在的BPM元数据都会因轨道具有恒定速度的假设而存在缺陷。并不总是一个安全的假设。
可以从The Echonest
获取质量音频元数据