Я пытаюсь реализовать распознавание битов в приложении для iOS. Я нашел довольно простую среду под названием SoundTouch и попытался реализовать ее в соответствии с
Пример обнаружения BPM в iOS SoundTouch
К сожалению, ни одна из моих следующих попыток, похоже, не работает, и в настоящее время я нахожусь в тупиковом состоянии, поэтому мой пост в Stackoverflow.
Я предпринял следующие шаги:
Refactored
player =[[AVAudioPlayer alloc] initWithData:data error:NULL];
в
AVAudioPlayer *player =[[AVAudioPlayer alloc] initWithData:data error:NULL];
Сейчас компилятор жалуется на:
soundtouch::SAMPLETYPE sampleBuffer[len]; (use of undeclared variable soundtouch)
soundtouch::BPMDetect BPM(player.numberOfChannels, [[player.settings valueForKey:@"AVSampleRateKey"] longValue]); (use of undeclared variable soundtouch)
BPM.inputSamples(sampleBuffer, len/player.numberOfChannels); (use of undeclared variable BPM)
NSLog(@"Beats Per Minute = %f", BPM.getBpm()); (use of undeclared variable BPM)
Я думаю, что мои знания о C ++ не такие, какими должны быть, и объекты soundtouch и BPM должны быть объявлены / инициализированы.
Спасибо, ребята!
Вам нужно сделать следующее для компиляции проекта:
добавлять #import <SoundTouch/BPMDetect.h>
на ваш ViewController.mm
;
добавить фреймворк AVFoundation к вашей цели (см. рисунок);
установите языковые настройки, как показано на рисунке (в частности, используйте GNU C ++ libstdc ++).
Я не пытался запустить программу, но по крайней мере она собирается.