0

我有一个应用程序,用户可以在其中录制音频并在音调上有一些变化的情况下播放它。并且还应测量输出体积功率。我知道 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

[玩家 setMeteringEnabled:YES];

我们可以通过

  [player updateMeters];
    Float32 peak=[player peakPowerForChannel:0];

但我不能通过 AVAudioPlayer 改变音高

这是我的问题

4

2 回答 2

1

@johnykutty 没有使用avaudio播放器更改声音的选项。您需要通过外部库来更改音高....

于 2012-05-02T10:52:37.603 回答
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 欧元。有一个免费版本,但您必须阅读许可协议以了解您是否可以在商业产品中使用它(如果我已正确阅读协议,您可以使用它,只要您给予作者信用即可)。

于 2012-10-22T20:22:12.023 回答