当我尝试在 iOS 中的 Reverb2 单元上设置 ReverbRoomType 属性时,我得到一个 -10879 (kAudioUnitErr_InvalidProperty)。这是我创建它的方法:
AudioComponentDescription outputcd = {0};
outputcd.componentType = kAudioUnitType_Effect;
outputcd.componentSubType = kAudioUnitSubType_Reverb2;
outputcd.componentManufacturer = kAudioUnitManufacturer_Apple;
AUNode reverbNode;
CheckError(AUGraphAddNode(self.auGraph, &outputcd, &reverbNode),
"AUGraphNode[kAudioUnitSubType_Reverb2] failed");
CheckError(AUGraphNodeInfo(_auGraph, reverbNode, NULL, &_auReverb),
"AUGraphNodeInfo failed [reverbNode]");
这里设置房间类型(“CheckError()”调用失败,该调用针对 noErr 测试返回并在退出前记录错误)。这是由于 kAudioUnitErr_InvalidProperty 而失败的调用:
UInt32 roomType = kReverbRoomType_LargeHall;
CheckError(AudioUnitSetProperty(_auReverb, kAudioUnitProperty_ReverbRoomType,
kAudioUnitScope_Global, 0, &roomType, sizeof(UInt32)),
"AudioUnitSetProperty[kAudioUnitProperty_ReverbRoomType] failed");
我只为属性尝试了 2 个不同的值,但错误让我认为属性常量本身是错误的。这不能在 iOS 5 上设置吗?从 kAudioUnitProperty_ReverbRoomType 更改为 kAudioUnitProperty_ReverbPreset 也无济于事。
在此先感谢您的任何建议。