在文档中,我看到了几个 Apple 音频框架。它们似乎都针对播放和录制音频。所以我想知道这些之间的最大区别是什么?
- 音频工具箱
- 音频单元
- 视音频基金会
- 核心音频
我是否错过了一个很好地概述所有这些的指南?
在文档中,我看到了几个 Apple 音频框架。它们似乎都针对播放和录制音频。所以我想知道这些之间的最大区别是什么?
我是否错过了一个很好地概述所有这些的指南?
我对 Core Audio 及其(包含)框架进行了简要的图形概述:
最接近硬件的框架是Audio Unit。基于此,有OpenAL和AudioToolbox与AudioQueue。在顶部,您可以找到媒体播放器和AVFoundation(音频和视频)框架。
现在取决于你想做什么:只是一个小记录,使用AVFoundation,这是最容易使用的。(媒体播放器没有录制选项,顾名思义,它只是一个媒体播放器。)
你想做严肃的实时信号处理吗?使用音频单元。但请相信我,这是最难的方式。:-)
在 iOS 8.0 中,Apple 引入了AVAudioEngine,这是 AV Foundation 中基于 Objective-C/Swift 的音频图系统。这封装了来自音频单元的一些脏 C-stuff。由于音频单元的复杂性,它可能值得一看。
Apple文档中的进一步阅读:
Core Audio 是所有框架中最低级别的,也是最古老的。
Audio Toolbox 就在 Core Audio 之上,并提供了许多不同的 API,使处理声音变得更容易,但仍然给你很多控制权。有 ExtAudioFile、AudioConverter 和其他几个有用的 API。
Audio Unit 是一个框架,用于处理采样音频数据和 MIDI 的音频处理链。它是混音器和各种过滤器和效果器(例如混响)存在的地方。
AV Foundation 是一个新的、相当高级的 API,用于在 iPhone OS 上录制和播放音频。所有这些都可以在 OS X 和 iOS 上使用,尽管 AV Foundation 需要 OS X 10.8+。
Core Audio 实际上并不是一个框架,而是一个包含许多不同框架的基础设施。事实上,iOS 扬声器发出的任何音频都由 Core Audio 管理。
您可以获得的核心音频中的最低级别是使用音频单元,您可以通过使用 AudioToolbox 和 AudioUnit 框架来使用它。
AudioToolbox 框架还提供了更高级别的抽象来处理使用 AudioQueues 播放/录制音频,或使用各种转换器和文件服务管理各种音频格式。
最后,AV Foundation 提供了播放特定文件的高级访问权限,MediaPlayer 让您可以访问(和播放)您的 iPod 库。
该站点对不同 API 的核心功能进行了简短而出色的概述:http: //cocoawithlove.com/2011/03/history-of-ios-media-apis-iphone-os-20.html
在这里您可以找到所有 iOS 和 OSX 音频框架的概述: https ://developer.apple.com/library/ios/documentation/MusicAudio/Conceptual/CoreAudioOverview/WhatsinCoreAudio/WhatsinCoreAudio.html#//apple_ref/doc/uid/ TP40003577-CH4-SW4