AUParamInfo()在iOS7框架(CoreAudio,AudioUnit,AudioToolbox)中似乎不存在。我想知道如何获取单元的所有参数。也就是说,在不知道单元是什么类型或子类型的情况下,因为如果没有,答案是在“音频单元参数参考”中查找。
Greg的答案是正确的,因为kAudioUnitProperty_ParameterList是正确的属性ID,可以查询该属性ID以最终获取单元的所有参数。但是,获取所有参数的方式会涉及更多:
AudioUnitGetPropertyInfo
,看是否该属性是可用的,如果是,找回它的数据量(数据大小为整个信息这可能是一个集合,而不是一个单一的元素任何类型的属性,你介意)。使用AudioUnitGetProperty
适当的属性将其取回。同样,在这一点上,如果返回的属性是元素的集合而不是单个元素,则必须AudioUnitGetProperty
为每个元素调用一次。具体来说,您将其称为“dataSize / sizeof(TypeToHoldSingleInstanceOfYourProperty)
时间”。
// Get number of parameters in this unit (size in bytes really):
UInt32 parameterListSize = 0;
AudioUnitGetPropertyInfo(_audioUnit, kAudioUnitProperty_ParameterList, kAudioUnitScope_Global, 0, ¶meterListSize, NULL);
// Get ids for the parameters:
AudioUnitParameterID *parameterIDs = malloc(parameterListSize);
AudioUnitGetProperty(_audioUnit, kAudioUnitProperty_ParameterList, kAudioUnitScope_Global, 0, parameterIDs, ¶meterListSize);
AudioUnitParameterInfo parameterInfo_t;
UInt32 parameterInfoSize = sizeof(AudioUnitParameterInfo);
UInt32 parametersCount = parameterListSize / sizeof(AudioUnitParameterID);
for(UInt32 pIndex = 0; pIndex < parametersCount; pIndex++){
AudioUnitGetProperty(_audioUnit, kAudioUnitProperty_ParameterInfo, kAudioUnitScope_Global, parameterIDs[pIndex], ¶meterInfo_t, ¶meterInfoSize);
// do whatever you want with each parameter...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句