0

当我尝试在 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 也无济于事。

在此先感谢您的任何建议。

4

1 回答 1

0

kAudioUnitProperty_ReverbRoomType 和 kAudioUnitProperty_ReverbPreset 属性适用于 3D Mixer AU,而不是 Reverb2 AU。

于 2013-03-02T03:08:43.983 回答