所有这些音频框架之间有什么区别?

ope*_*rog 38 iphone audio core-audio avfoundation

在文档中,我看到了几个音频框架.所有这些似乎都是针对播放和录制音频.所以我想知道这些之间的巨大差异是什么?

音频工具箱,音频单元,AV基础和核心音频.或者我错过了一个能够很好地概述所有这些内容的指南?

luc*_*ius 42

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


Mic*_*ner 39

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

iOS中的音频API

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

现在它取决于你想做什么:只是一个小的录音,使用AVFoundation,这是最容易使用的.(媒体播放器没有录制选项,正如其名称所说的那样 - 只是一个媒体播放器.)

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

在iOS 8.0中,Apple推出了AVAudioEngine,这是AV Foundation中基于Objective-C/Swift的音频图形系统.这封装了一些来自Audio Units的脏东西.由于音频单元的复杂性,它可能值得一看.

Apple文档中的进一步阅读:


Ori*_*eto 7

Core Audio实际上不是一个框架,而是一个包含许多不同框架的基础架构.实际上,任何来自iOS扬声器的音频都是由Core Audio管理的.

您可以使用音频单元获得Core Audio中的最低级别,您可以使用AudioToolbox和AudioUnit框架来使用它.

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

最后,AV Foundation提供对播放一个特定文件的高级访问权限,MediaPlayer允许您访问(和播放)iPod库.