私はウェブ全体を検索しており、SoundTouch libraryをビート検出に使用する方法に関するチュートリアルを見つけることができません。iOS SoundTouch framework BPMの検出例
(注:。。。私は前にこれまでありませんC++の経験を持って、私はC、Objective-Cの、およびJavaだから私はこの一部を台無しにしている可能性があり、それはコンパイルを知っていますか)
私が追加
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
曲のバイト情報が私を混乱させる:私のプロジェクトへframeworkとは、コンパイルに次のことを得ることができました。
ソングファイルからこれらの情報を取得するにはどうすればよいですか?
私はmemcpy()
を使ってみましたが、動作していないようです。
誰でも意見はありますか?
SoundTouchライブラリをxcodeプロジェクトにどのように追加したのですか? – otakuProgrammer
フレームワークをダウンロードしてプロジェクトにインポートするだけです。 – MrHappyAsthma
ok私はxcodeプロジェクトにそれを組み込むことができました。上のコードはうまく動作しませんでした。アプリケーションがクラッシュしたとき、wavとmp3ファイルの両方を試したとき、soundtouchウェブサイトのorigオーディオサンプルを使用しても、クラッシュしましたissue、またはnan result(origサンプルオーディオを使用している場合) – otakuProgrammer