我正在开发一种适用于 iOS 的数字音频工作站架构(主要是,但也试图支持OS X )。我将慢慢浏览Apple提供的数英里文档及其框架的参考资料。
我有使用DSP的经验,但iOS对我来说更新,有很多对象,教程(即使是旧版本的iOS)和不同API的不同框架。 我想确保在开始时选择正确的,或者组合。
该架构的目标是:
我希望我没有错过任何内容,但这些是最重要的目标。
我的研究
我查看了大部分框架(虽然没有详细说明),这就是我想到的。 Apple列出了以下在iOS上使用音频的框架:
Media Player和AV Foundation是太高级别的API,不允许直接访问样本。另一侧的OpenAL无法录制音频。这样就留下了Audio Toolbox和Audio Unit框架。这里解释了许多不同之处:What's the difference between all these audio frameworks?
根据我的理解,Audio Toolbox将是最佳选择,因为目前不需要MIDI。但是有关Audio Toolbox的信息和教程很少,可以进行更专业的控制,例如录音,播放等。但音频单元还有很多。
我的第一个问题: 音频队列服务究竟是什么以及它们属于哪个框架?
然后是最后一个问题:
应该使用哪个框架来实现大多数预期目标?
您甚至可以建议混合和匹配框架,类,但我请您解释您的答案以及您将使用哪些课程来更详细地实现目标。我鼓励尽可能使用最高级API,但实现目标所需的级别较低。也欢迎示例代码链接。
非常感谢你的帮助。
答案 0 :(得分:4)
Audio Units是最低级别的iOS音频API,以及构建音频队列的API。音频单元将提供具有最低延迟的应用程序,因此最接近实时处理。它是一个C API,因此应用程序可能必须执行一些自己的音频内存管理。
AVFoundation框架可以让应用程序更容易访问音乐库资产。
应用程序只能处理来自其他明确发布音频数据的应用程序的声音,这些应用程序不包括音乐播放器应用程序,但包含一些使用Apple的Inter-App Audio API和第三方Audiobus API的应用程序。