如何在 iOS 应用中检测音频文件的 BPM
Posted
技术标签:
【中文标题】如何在 iOS 应用中检测音频文件的 BPM【英文标题】:How to detect BPM of audio file in iOS app 【发布时间】:2014-02-17 10:32:19 【问题描述】:我尝试使用 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】:BPM 是从音频文件随附的元数据中提取的。这通常不存在。它不是从音频中计算出来的。
另外请注意,任何确实存在的 BPM 元数据都存在缺陷,因为假设曲目具有恒定速度。并不总是一个安全的假设。
优质音频元数据可从The Echonest获取
【讨论】:
您提供的链接无效。我每次都面临同样的 bpm 为 0 的问题。请推荐一些有用的资源。以上是关于如何在 iOS 应用中检测音频文件的 BPM的主要内容,如果未能解决你的问题,请参考以下文章