Core Audio(iOS 5.1)Reverb2属性不存在,错误代码为-10877

我正在玩苹果的示例项目“LoadPresetDemo”。 我已经将混响audio单元AudioUnit kAudioUnitSubType_Reverb2到graphics,这是唯一可用的iOS混响。 在CoreAudio头文件“AudioUnitParameters.h”中,它声明了Reverb2应该响应这些参数:

 enum { // Global, CrossFade, 0->100, 100 kReverb2Param_DryWetMix = 0, // Global, Decibels, -20->20, 0 kReverb2Param_Gain = 1, // Global, Secs, 0.0001->1.0, 0.008 kReverb2Param_MinDelayTime = 2, // Global, Secs, 0.0001->1.0, 0.050 kReverb2Param_MaxDelayTime = 3, // Global, Secs, 0.001->20.0, 1.0 kReverb2Param_DecayTimeAt0Hz = 4, // Global, Secs, 0.001->20.0, 0.5 kReverb2Param_DecayTimeAtNyquist = 5, // Global, Integer, 1->1000 kReverb2Param_RandomizeReflections = 6, }; 

AUGraph初始化并启动后,所有东西都编译完成,听到声音。

接下来,我改变kReverb2Param_DryWetMix参数(改为全湿混合):

 AudioUnitSetParameter(_reverbUnit, kAudioUnitScope_Global, 0, kReverb2Param_DryWetMix, 100.0f, 0); 

一切顺利,我听到充满混合混响的声音。

现在听到的是我遇到的问题。 当试图改变除kReverb2Param_DryWetMix以外的任何参数,我得到错误代码-10877 。 看起来,这些头文件中列出的其他参数实际上并不存在。

例如,打电话

 AudioUnitSetParameter(_reverbUnit, kAudioUnitScope_Global, 0, kReverb2Param_DecayTimeAtNyquist, 20.0f, 0) 

引发-10877错误。

这是一个错误? 我是否省略了任何audio框架? 我没有导入特定的audio标题?

目前的audio框架包括AVFoundation和AudioToolbox。 目前的audioinput是

 #import <AudioToolbox/AudioToolbox.h> #import <AVFoundation/AVFoundation.h> #import <CoreAudio/CoreAudioTypes.h> 

我search谷歌没有解决scheme。 Google路由失败时我知道我有问题。 任何帮助将不胜感激。

注:我用模拟器和iPhone 4S设备进行testing,同样的问题。

更新:我已经尝试过

 AudioUnitGetParameter(_reverbUnit, kReverb2Param_DecayTimeAtNyquist, kAudioUnitScope_Global, 0, &value) 

它返回一个值0.500000 ,这意味着该属性确实存在。 那么我在设置这个值时做错了什么?

卫生署! 我意识到,我正在混淆AudioUnitSetParameterAudioUnitSetProperty ,包括他们的参数。 人,微妙但邪恶。