【问题标题】:what's means AudioUnitRender?AudioUnitRender 是什么意思?
【发布时间】:2013-12-07 15:42:09
【问题描述】:

最近,我在看 aurioTouch。 但是这句话我看不懂:

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

根据苹果文档解释:启动音频单元的渲染周期。 但是我感觉很模棱两可。这是怎么回事?

【问题讨论】:

    标签: ios audio core-audio audiounit


    【解决方案1】:

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

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

    Apple 的 Audio Unit Hosting Guide 包含一个我觉得很有帮助的渲染部分。

    【讨论】:

    • 我的理解是回调函数调用输出总线的输入范围时,回调函数本身已经拿到了数据,并呈现了函数参数,这些数据都是通过音频单元连接获得的。比如AudioBufferList * ioData有值,需要主动调用AudioUnitRender()吗?而对于unit connect,一定需要调用AudioUnitRender()吗?我的理解肯定是错误的,请批评者指出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2017-06-11
    • 2018-03-05
    • 2023-03-27
    • 1970-01-01
    • 2013-03-09
    • 2020-05-01
    相关资源
    最近更新 更多