【发布时间】:2019-06-26 18:04:55
【问题描述】:
我有一个带有详细渲染回调的应用程序,我怀疑它是否可以使用 AVAudioEngine。
无论如何要使用我的 AUGraph 渲染回调(带有多个总线)和 AVAudioEngine 吗?
任何示例代码?
【问题讨论】:
标签: audio core-audio avaudioengine ios13 augraph
我有一个带有详细渲染回调的应用程序,我怀疑它是否可以使用 AVAudioEngine。
无论如何要使用我的 AUGraph 渲染回调(带有多个总线)和 AVAudioEngine 吗?
任何示例代码?
【问题讨论】:
标签: audio core-audio avaudioengine ios13 augraph
Audio Unit API 没有被弃用,只有可能构建在它之上的 AUGraph。
使用AudioUnitSetProperty 和kAudioUnitProperty_MakeConnection 和AudioUnitConnection 结构建立连接。
使用AudioOutputUnitStart 和AudioOutputUnitStop 启动和停止输出单元。
使用AudioUnitSetProperty 和kAudioUnitProperty_SetRenderCallback 和AURenderCallbackStruct 设置渲染回调
除了一点簿记和更简单的连接语法之外,AUGraph 并没有给您提供太多东西。
【讨论】:
一个(非弃用)V3 AUAudioUnit 子类仍然可以返回一个支持音频渲染回调的 AUInternalRenderBlock。然后,AVAudioEngine API 可以连接这些音频单元(例如,连接到混音器节点)。 Audio Unit V3 渲染函数似乎仍然允许在 iOS 上进行短时间(少于 500 个样本的缓冲区)进行近实时音频合成和分析。
在 GitHub 上查看我的 V3 AU 示例应用程序(混合 Swift 和 Objective C):https://github.com/hotpaw2/auv3test5
【讨论】: