【发布时间】:2014-07-16 14:47:23
【问题描述】:
我正在尝试在 iOS 应用程序中实现节拍检测。我找到了一个相当简单的框架,叫做 SoundTouch 并尝试根据
iOS SoundTouch framework BPM Detection example
不幸的是,我的以下努力似乎都没有奏效,目前处于死锁状态,因此我在 Stackoverflow 上发帖。
我采取了以下步骤:
- 创建基于单视图的项目
- 已导入
- 将 mainViewController.m 重命名为 ViewController.mm 以使其与 c++ 兼容
- 指示 ViewController 的 UIViewController 类符合 AVFoundationPlayerDelegate 协议。
- 复制/粘贴@MrHappyAsthma 发布到他的问题的解决方案
-
重构
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。
谢谢各位!
【问题讨论】:
-
您似乎没有包含声音触摸标头——尽管您说您包含...您不能再发布一些代码吗?甚至你的整个项目……
-
感谢您的努力!
-
@AlexvanRijs:别忘了奖励赏金(绿色勾下的小蓝框!)
标签: c++ ios objective-c soundtouch beat-detection