我试图使用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];

我在这里想念什么吗?

最佳答案

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

还应注意,假设轨 Prop 有恒定的速度,则确实存在的任何BPM元数据都有缺陷。并非总是一个安全的假设。

可以从The Echonest获得高质量的音频元数据

关于ios - 如何在iOS应用中检测音频文件的BPM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21826591/

10-09 21:18