Sal*_*rtz 2 core-audio audiounit ios ios7
AUParamInfo()似乎不存在于iOS7框架(CoreAudio,AudioUnit,AudioToolbox)中.我想知道如何获得单位的所有参数.也就是说,在不知道它是什么类型或子类型的情况下,因为如果不是,那么答案就是在音频单元参数参考中查找.
Greg的答案是正确的,因为kAudioUnitProperty_ParameterList是要查询的最终属性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...
}
| 归档时间: | 
 | 
| 查看次数: | 1438 次 | 
| 最近记录: |