我目前有一个基于Swift编写的AVAudioEngine的Xcode项目。
引擎的顶部是一个AVAudioPlayerNode,用于调度一些LPCM音频缓冲区。
为了让AUv3处理音频,它需要覆盖以下属性(来自这里的信息)
inputBusses
getter方法以返回应用程序扩展的音频输入连接点。outputBusses
getter方法以返回应用程序扩展的音频输出连接点。internalRenderBlock
getter方法以返回实现app扩展的音频呈现循环的块。
还必须覆盖宿主应用程序在开始呈现音频之前调用的allocateRenderResourcesAndReturnError:
方法,并重写宿主应用程序在呈现音频之后调用的deallocateRenderResources
方法。在每个覆盖中,必须调用AUAudioUnit超类实现。
给定一个工作的AVAudioEngine,在何处或如何将inputbusses
、outputbusses
和缓冲区连接到AUv3中的internalRenderBlock
?
我有一个工作的原型AUv3,它可以加载到像GarageBand这样的主机中。
我要做的是将音频缓冲区从AVAudioEngine传递到AUv3的internalRenderBlock
,以便完成从AUv3到主机的音频管道。
发布于 2019-09-17 09:33:08
这里有一些在AUv3 internalRenderBlock中生成示例数据的示例代码:
它是在目标C的C子集中编写的,因为2017年WWDC关于音频单元的会议说在实时音频上下文中不使用Swift。
https://stackoverflow.com/questions/57960383
复制相似问题