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...
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1438 次 |
| 最近记录: |