首页 文章

iOS上的数字音频工作站架构

提问于
浏览
2

我正在开发一种适用于 iOS 的数字音频工作站架构(主要是,但也尝试支持OS X) . 我将慢慢浏览Apple的数英里文档及其框架的参考资料 .

我有使用DSP的经验,但iOS对我来说更新,有很多对象,教程(即使是旧版本的iOS)和不同API的不同框架 . I would just like to make sure I choose the right one on start, or combination of those.

The goals of the architecture are:

  • Sound track sample access (访问文件中的示例)

  • iPod库歌曲

  • 本地文件歌曲

  • 远程服务器上的歌曲

  • 电台(无限长歌)

  • Effect chaining (多个均衡器,或同时改变音高和速度)

  • Multiple channels and mixing (甚至环绕)

  • Portability
    至少

  • Mac OS X.

  • iOS 6支持(不需要iOS 5或更低版本)

  • 32-bit floats 中的示例访问,不是有符号整数 .

  • Easy Objective-C API (DSP当然在C中完成处理)

  • Recording, playing

  • 记录到文件(按选择编解码器),或通过网络发送(VoIP)

  • 在iOS上的不同输出(在Mac上)或扬声器/耳机上播放

  • 更改音量/静音

  • 背景音频支持

  • Real-time sample processing

  • 当前播放的任何歌曲上的均衡器

  • 实时样品操作

  • Multi-threading

我希望我没有错过任何东西,但那些是最重要的目标 .

My research

我已经浏览了大部分框架(虽然不是那么详细)但这就是我想到的 . Apple列出了以下在iOS上使用Audio的框架:

  • Media Player框架

  • AV基金会框架

  • Audio Toolbox框架

  • 音频单元框架

  • OpenAL框架

Media Player和AV Foundation是太高级的API,不允许直接访问样本 . 另一侧的OpenAL无法录制音频 . 这样就留下了Audio Toolbox和Audio Unit框架 . 这里解释了许多不同之处:What's the difference between all these audio frameworks?

据我所知,Audio Toolbox将是最佳选择,因为目前不需要MIDI . 但是有关Audio Toolbox的信息和教程很少,可以进行更专业的控制,例如录音,播放等 . 但是音频单元还有很多 .

我的第一个问题: What exactly are Audio Queue Services and what framework they belong to?

然后是最后一个问题:

Which framework should be used to be able to achieve most of the desired goals?

您甚至可以建议混合和匹配框架,类,但我请您解释您的答案以及您将使用哪些类来更详细地实现目标 . 我鼓励尽可能使用最高级API,但实现目标所需的级别较低 . 也欢迎示例代码链接 .

非常感谢您的帮助 .

1 回答

  • 4

    Audio Units是最低级别的iOS音频API,以及构建音频队列的API . 音频单元将提供具有最低延迟的应用程序,因此最接近实时处理 . 它是一个C API,所以一个应用程序可能必须做一些自己的音频内存管理 .

    AVFoundation框架可以使应用程序更容易访问音乐库资产 .

    应用程序只能处理来自明确发布其音频数据的其他应用程序的声音,其中不包括音乐播放器应用程序,但包含一些使用Apple的Inter-App Audio API和第三方Audiobus API的应用程序 .

相关问题