是否可以枚举音频单元参数描述?
Posted
技术标签:
【中文标题】是否可以枚举音频单元参数描述?【英文标题】:is it possible to enumerate Audio Unit parameter descriptions? 【发布时间】:2011-07-03 20:46:17 【问题描述】:有没有办法让音频单元主机逐步检查插件的参数并获得如下信息:
字符串形式的参数名称,例如“延迟时间” 参数范围(最小值、最大值) 参数单位(例如秒) 参数控制(例如滑块)AFAICT 此信息在插件中可用,但我不知道如何从主机端查询它。
【问题讨论】:
【参考方案1】:您首先需要#import
CAAUParameter 和 AUParamInfo(可在 /Developer/Extras/CoreAudio/PublicUtility 中找到)。
编辑:这些文件现在可以在“Audio Tools For Xcode”包中找到。你可以去 Xcode > Open Developer Tool > More Developer Tools...
假设您有一个名为 theUnit
的 AudioUnit,以下代码将设置您遍历 theUnit
的参数:
bool includeExpert = false;
bool includeReadOnly = false;
AUParamInfo info (theUnit, includeExpert, includeReadOnly);
for(int i = 0; i < info.NumParams(); i++)
if(NULL != info.GetParamInfo(i))
// Do things with info here
例如,info.GetParamInfo(i))->ParamInfo()
会给你一个 AudioUnitParameterInfo 结构体,其定义如下:
typedef struct AudioUnitParameterInfo
char name[52];
CFStringRef unitName;
UInt32 clumpID;
CFStringRef cfNameString;
AudioUnitParameterUnit unit;
AudioUnitParameterValue minValue;
AudioUnitParameterValue maxValue;
AudioUnitParameterValue defaultValue;
UInt32 flags;
AudioUnitParameterInfo;
请注意,您需要先打开 AudioUnit(例如,通过在包含该单元的 Graph 上调用 AUGraphOpen())。
【讨论】:
以上是关于是否可以枚举音频单元参数描述?的主要内容,如果未能解决你的问题,请参考以下文章
当我需要自定义音频效果时,我是不是需要处理音频单元,或者我可以依赖音频队列服务?