你能告诉我如何在 Swift iOS 项目中使用SoundTouch 框架来检测 BPM 吗?我用桥接头尝试了所有的东西,但我无法让它工作......谢谢!
3 回答
如果您仍然需要它来在您的 iOS 项目中使用 SoundTouch,我已经与为armv7
、armv7s
、arm64
和编译的库共享了一个 GitHub 存储库i386
x86_64
https://github.com/enrimr/soundtouch-ios-library
要在您的项目中实现该编译库,您必须在您的 Xcode 项目中添加 SoundTouch 目录(包括 libSoundTouch.a 和带有头文件的目录)。
在 SWIFT 中,您无法导入 .h,因此您需要创建一个名为<Your-Project-Name>-Bridging-Header-File.h
Then 在项目构建设置中引用它的 .h 文件(在“Swift Compiler”下查找“Objective C Bridging Header”):
$(SRCROOT)/<Your-Project-Name>-Bridging-Header.h
现在您必须能够使用 SoundTouch 类。
soundtouch 库最初是用 Swift 无法编译的 C++ 编写的。
即使使用更新的 soundtouch 库,如果没有 Objective-C 包装器以允许 Swift 访问该方法,该库也不会在 Swift 项目中编译。
使用桥接头确实会包含 soundtouch 库,但之后项目将不会在那里编译。
如果你想在你的项目中使用 Swift,那么我可以建议使用这个库:
https://github.com/Luccifer/BPM-Analyser
guard let filePath = Bundle.main.path(forResource: "TestMusic", ofType: "m4a"),
let url = URL(string: filePath) else {return "error occured, check fileURL"}
BPMAnalyzer.core.getBpmFrom(url, completion: nil)