52

在文档中,我看到了几个 Apple 音频框架。它们似乎都针对播放和录制音频。所以我想知道这些之间的最大区别是什么?

  • 音频工具箱
  • 音频单元
  • 视音频基金会
  • 核心音频

我是否错过了一个很好地概述所有这些的指南?

4

5 回答 5

52

我对 Core Audio 及其(包含)框架进行了简要的图形概述:

iOS 中的音频 API

最接近硬件的框架是Audio Unit。基于此,有OpenALAudioToolboxAudioQueue。在顶部,您可以找到媒体播放器AVFoundation(音频和视频)框架。

现在取决于你想做什么:只是一个小记录,使用AVFoundation,这是最容易使用的。(媒体播放器没有录制选项,顾名思义,它只是一个媒体播放器。)

你想做严肃的实时信号处理吗?使用音频单元。但请相信我,这是最难的方式。:-)

在 iOS 8.0 中,Apple 引入了AVAudioEngine,这是 AV Foundation 中基于 Objective-C/Swift 的音频图系统。这封装了来自音频单元的一些脏 C-stuff。由于音频单元的复杂性,它可能值得一看。

Apple文档中的进一步阅读:

于 2014-07-06T18:51:46.503 回答
50

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+。

于 2009-12-31T18:38:19.053 回答
10

Core Audio 实际上并不是一个框架,而是一个包含许多不同框架的基础设施。事实上,iOS 扬声器发出的任何音频都由 Core Audio 管理。

您可以获得的核心音频中的最低级别是使用音频单元,您可以通过使用 AudioToolbox 和 AudioUnit 框架来使用它。

AudioToolbox 框架还提供了更高级别的抽象来处理使用 AudioQueues 播放/录制音频,或使用各种转换器和文件服务管理各种音频格式。

最后,AV Foundation 提供了播放特定文件的高级访问权限,MediaPlayer 让您可以访问(和播放)您的 iPod 库。

于 2013-06-17T20:53:47.153 回答
5

该站点对不同 API 的核心功能进行了简短而出色的概述:http: //cocoawithlove.com/2011/03/history-of-ios-media-apis-iphone-os-20.html

于 2011-10-03T15:18:10.980 回答
1

在这里您可以找到所有 iOS 和 OSX 音频框架的概述: https ://developer.apple.com/library/ios/documentation/MusicAudio/Conceptual/CoreAudioOverview/WhatsinCoreAudio/WhatsinCoreAudio.html#//apple_ref/doc/uid/ TP40003577-CH4-SW4

于 2014-02-17T14:14:53.717 回答