Я искал по всему Интернету и не могу найти учебник о том, как использовать SoundTouch library для обнаружения биений.iOS SoundTouch framework BPM Пример обнаружения
(Примечание... У меня нет C++ опыта до этого я знаю, C, Objective-C и Java Так что я мог бы испортил некоторые из этого, но он компилирует)
Я добавил framework к моему проекту и удалось получить следующие компиляции:
NSString *path = [[NSBundle mainBundle] pathForResource:@"song" ofType:@"wav"];
NSData *data = [NSData dataWithContentsOfFile:path];
player =[[AVAudioPlayer alloc] initWithData:data error:NULL];
player.volume = 1.0;
player.delegate = self;
[player prepareToPlay];
[player play];
NSUInteger len = [player.data length]; // Get the length of the data
soundtouch::SAMPLETYPE sampleBuffer[len]; // Create buffer array
[player.data getBytes:sampleBuffer length:len]; // Copy the bytes into the buffer
soundtouch::BPMDetect *BPM = new soundtouch::BPMDetect(player.numberOfChannels, [[player.settings valueForKey:@"AVSampleRateKey"] longValue]); // This is working (tested)
BPM->inputSamples(sampleBuffer, len); // Send the samples to the BPM class
NSLog(@"Beats Per Minute = %f", BPM->getBpm()); // Print out the BPM - currently returns 0.00 for errors per documentation
информация байт inputSamples(*samples, numSamples)
песня путает меня.
Как получить эти данные из файла песни?
Я пробовал использовать memcpy()
, но он, похоже, не работает.
У кого-нибудь есть мысли?
круто вы можете рассказать, как вы добавили библиотеку SoundTouch в проект xcode? – otakuProgrammer
Вы просто загрузите фреймворк и импортируете его в свой проект. – MrHappyAsthma
ok Мне удалось включить его в проект xcode, код выше не работает, несколько раз сбой приложений, я попробовал как wav, так и mp3-файлы, я даже использовал образец аудио оригинала с сайта soundtouch, он дает мне сбой выпуск или результат nan (при использовании аудио образца orig) – otakuProgrammer