AudioUnitRender是什么意思?

时间:2013-12-07 15:42:09

标签: ios audio core-audio audiounit

最近,我正在看aurioTouch。 但我无法理解这句话:

OSStatus err = AudioUnitRender (THIS-> rioUnit, ioActionFlags, inTimeStamp, 1, inNumberFrames, ioData); 

根据apple documentaion解释:启动音频单元的渲染周期。 但我觉得很暧昧。这是做什么的?

1 个答案:

答案 0 :(得分:5)

Core Audio在“拉”模式下工作,输出单元通过从连接到其输入总线的单元请求音频样本来启动过程。同样,连接到输出单元的单元要求连接到其输入总线的样本。每个“问”都是渲染周期。

AudioUnitRender()通常传入一个样本缓冲区,您的音频单元可以选择以某种方式处理这些样本缓冲区。该缓冲区是函数ioData中的最后一个参数。 inNumberFrames是ioData传入的帧数。 1是要呈现的输出元素或“总线”(这可能会根据您的配置而改变)。 rioUnit是正在进行处理的音频单元。

Apple的Audio Unit Hosting Guide包含有关渲染的部分,我发现它很有帮助。