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