在文档中,我看到了几个音频框架。所有这些似乎都是针对播放和录制音频。所以我想知道这些之间的巨大差异是什么?
音频工具箱,音频单元,AV 基础和核心音频。或者我错过了一个能够很好地概述所有这些内容的指南?
Core Audio 是所有框架的 lowest-level,也是最古老的框架。
Audio Toolbox 就在 Core Audio 之上,提供了许多不同的 API,可以更轻松地处理声音,但仍然可以为您提供很多控制。有 ExtAudioFile,AudioConverter 和其他一些有用的 API。
Audio Unit 是一个用于处理采样音频数据和 MIDI 的音频处理链的框架。它是混音器和混响等各种滤波器和效果的场所。
AV Foundation 是一个新的,相当 high-level API,用于在 iPhone OS 上录制和播放音频。所有这些都可以在 OS X 和 iOS 上使用,但 AV Foundation 需要 OS X 10.8.
我对 Core Audio 及其(包含)框架进行了简要的图形概述:
最接近硬件的框架是音频单元。基于此,有OpenAL和AudioToolbox与AudioQueue。在顶部,您可以找到媒体播放器和AVFoundation(音频和视频)框架。
现在它取决于你想要做什么:只需一个小的录音,使用AVFoundation,这是最容易使用的。 (媒体播放器没有录制选项,正如名称所说 - 只是一个媒体 player.)
你想做严肃的实时信号处理吗?使用音频单元。但请相信我,这是最难的方式。 :-)
随着 iOS 8.0 Apple 推出了AVAudioEngine,这是 AV Foundation 中基于_3 的音频图形系统。这封装了一些来自 Audio Units 的脏 C-stuff。由于音频单元的复杂性,它可能值得一看。
Apple 文档中的进一步阅读:
核心音频概述:简介
多媒体编程指南
音频和视频起点
Core Audio 实际上不是一个框架,而是一个包含许多不同框架的基础架构。实际上,任何来自 iOS 扬声器的音频都是由 Core Audio 管理的。
您可以通过使用音频单元获得 Core Audio 中的 lowest-level,您可以使用 AudioToolbox 和 AudioUnit 框架来处理它。
AudioToolbox 框架还提供更高级别的抽象,以使用 AudioQueues 处理 playing/recording 音频,或使用各种转换器和文件服务管理各种音频格式。
最后,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
5 回答
Core Audio 是所有框架的 lowest-level,也是最古老的框架。
Audio Toolbox 就在 Core Audio 之上,提供了许多不同的 API,可以更轻松地处理声音,但仍然可以为您提供很多控制。有 ExtAudioFile,AudioConverter 和其他一些有用的 API。
Audio Unit 是一个用于处理采样音频数据和 MIDI 的音频处理链的框架。它是混音器和混响等各种滤波器和效果的场所。
AV Foundation 是一个新的,相当 high-level API,用于在 iPhone OS 上录制和播放音频。所有这些都可以在 OS X 和 iOS 上使用,但 AV Foundation 需要 OS X 10.8.
我对 Core Audio 及其(包含)框架进行了简要的图形概述:
最接近硬件的框架是音频单元。基于此,有OpenAL和AudioToolbox与AudioQueue。在顶部,您可以找到媒体播放器和AVFoundation(音频和视频)框架。
现在它取决于你想要做什么:只需一个小的录音,使用AVFoundation,这是最容易使用的。 (媒体播放器没有录制选项,正如名称所说 - 只是一个媒体 player.)
你想做严肃的实时信号处理吗?使用音频单元。但请相信我,这是最难的方式。 :-)
随着 iOS 8.0 Apple 推出了AVAudioEngine,这是 AV Foundation 中基于_3 的音频图形系统。这封装了一些来自 Audio Units 的脏 C-stuff。由于音频单元的复杂性,它可能值得一看。
Apple 文档中的进一步阅读:
核心音频概述:简介
多媒体编程指南
音频和视频起点
Core Audio 实际上不是一个框架,而是一个包含许多不同框架的基础架构。实际上,任何来自 iOS 扬声器的音频都是由 Core Audio 管理的。
您可以通过使用音频单元获得 Core Audio 中的 lowest-level,您可以使用 AudioToolbox 和 AudioUnit 框架来处理它。
AudioToolbox 框架还提供更高级别的抽象,以使用 AudioQueues 处理 playing/recording 音频,或使用各种转换器和文件服务管理各种音频格式。
最后,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