Используйте SoundTouch Framework в Swift
Подскажите, пожалуйста, как использовать инфраструктуру SoundTouch в проекте Swift для iOS для определения BPM? Я перепробовал все с Bridging Headers и так далее, но я не могу заставить его работать... Спасибо!
3 ответа
Если вам все еще нужно использовать SoundTouch в вашем проекте iOS, я поделился репозиторием GitHub с библиотеками, скомпилированными для armv7
, armv7s
, arm64
, i386
а также x86_64
https://github.com/enrimr/soundtouch-ios-library
Чтобы внедрить эту скомпилированную библиотеку в ваш проект, вы должны добавить каталог SoundTouch (который включает libSoundTouch.a и каталог с заголовками) в ваш проект Xcode.
В SWIFT вы не можете импортировать.h, поэтому вам нужно будет создать.h файл с именем <Your-Project-Name>-Bridging-Header-File.h
Затем укажите его в настройках сборки вашего проекта (в разделе "Компилятор Swift" найдите "Objective C Bridging Header") с помощью:
$(SRCROOT)/<Your-Project-Name>-Bridging-Header.h
И теперь вы должны быть в состоянии использовать класс SoundTouch.
Библиотека soundtouch изначально написана на C++, которую Swift не будет компилировать.
Даже с обновленной библиотекой soundtouch библиотека не будет компилироваться в проекте Swift без упаковщиков Objective-C, которые позволят 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)