我有一个应用程序,用户可以在其中录制音频并播放音调。 并且还应测量输出功率。 我知道avaudioplayer和cocos声音引擎的计量属性。但是使用这些我无法一起完成我的需求。 我怎么能一起做这些(音高变换和电平测量)。任何人都可以帮助我。
修改
CDSoundEngine *soundEngine = [[CDSoundEngine alloc] init];
NSArray *defs = [NSArray arrayWithObjects: [NSNumber numberWithInt:1],nil];
[soundEngine defineSourceGroups:defs];
[soundEngine loadBuffer: 0 filePath: soundPath];
ALuint soundID= [soundEngine playSound: 0 sourceGroupId: 0 pitch: PITCH pan: 0.0f gain: 2.0f loop: NO];
这是我目前正在使用的代码工作正常,但我无法测量输出功率。 在AVAudioPlayer的情况下 有一个属于meteringenabled的房产
[player setMeteringEnabled:YES];
我们可以通过
检索电源 [player updateMeters];
Float32 peak=[player peakPowerForChannel:0];
但我无法通过AVAudioPlayer改变音高
这是我的问题
答案 0 :(得分:1)
@johnykutty没有选项可以通过使用avaudio播放器来改变声音。你需要通过外部库来获得音高变化....
答案 1 :(得分:1)
有一种方法可以使用外部库:Dirac3音频库 - http://dirac.dspdimension.com/Dirac3_Technology_Home_Page/Dirac3_Technology.html
此处提供了一个简单的教程:http://purplelilgirl.tumblr.com/post/3915153445/tutorial-other-ways-to-chipmunkify-your-voice
但许可费用为1000欧元。有一个免费版本,但您必须阅读许可协议,以确定您是否可以在商业产品中使用它(如果我已经正确阅读了协议,只要您给作者提供信用就可以使用它。)