渲染回调函数和输入回调函数有什么区别

nek*_*aki 5 callback audiounit ios

虽然我在互联网上搜索,但我仍然找不到我的问题的任何答案。我看到有两种回调函数,作为音频单元属性的描述,一种称为inputcallback函数,另一种称为rendercallback函数。

@constant       kAudioOutputUnitProperty_SetInputCallback
@discussion         Scope: Global
                    Value Type: AURenderCallbackStruct
                    Access: read/write


@constant       kAudioUnitProperty_SetRenderCallback
                    Scope:          Input
                    Value Type:     AURenderCallbackStruct
                    Access:         Write
Run Code Online (Sandbox Code Playgroud)

我不知道这两者之间有什么区别,我不知道什么时候或该选择哪一个。如果有人知道这件事,请帮助我。

也许这不是一个很难的问题,但我几天都无法解决。非常感谢。

cvu*_*cvu 5

kAudioOutputUnitProperty_SetInputCallback 当麦克风接收数据时使用,这允许您决定要如何处理该数据。在此回调中,您可以写入要放置该数据的位置。

kAudioUnitProperty_SetRenderCallback 你会经常看到“拉”这个词。当扬声器需要更多数据输出到扬声器时使用此功能。因此它将提取您在回调中提供的音频数据。