iOS 音视频开发(一)常用音视频框架介绍

文章规划

iOS 音视频开发(一)常用音视频框架介绍(本篇)

iOS 音视频开发(二)AVAudioRecorder实现录音功能

iOS 音视频开发(三)MediaPlayer播放本地、远程音频

iOS 音视频开发(四)MediaPlayer播放本地、远程视频

iOS 音视频开发(五)AVAudioPlayer/AVPlayer播放本地、远程音频

iOS 音视频开发(六)AVPlayer播放本地、远程视频

iOS 音视频开发(七)AudioToolbox音效播放

iOS 开发中常用的音视频框架有五个:

  1. MediaPlayer
  2. AudioToolbox
  3. AVFoundation
  4. AudioUnit
  5. VideoToolbox

下面简单介绍一下各个框架:

MediaPlayer 框架
MediaPlayer 框架是 iOS 平台上一个用于音频和视频播放的高层级接口,它包含了用户界面。你可以使用它来播放用户在 iPod 库中的项目,或者播放本地文件以及网络文件。

另外,这个框架也包括了查找用户媒体库中内容的 API,同时还可以配置像是在锁屏界面或者控制中心里的音频控件。

AudioToolbox框架
AudioToolbox 这个库是C的接口,偏向于底层,用于在线流媒体音乐的播放,可以调用该库的相关接口自己封装一个在线播放器类。

AVFoundation框架
是苹果的现代媒体框架,它包含了一些不同的用途的 API 。其中有一些是现代 Objective-C 对于底层 C 语言接口的封装。除了少数的例外情况,AVFoundation 可以同时在 iOS 和 OS X 中使用。

AudioUnit 框架
Audio Unit 框架是一个底层的 API。所有 iOS 中的音频技术都构建在 Audio Unit 这个框架之上。音频单元是用来加工音频数据的插件。一个音频单元链叫做音频处理图。

如果你需要非常低的延迟 (如 VoIP 或合成乐器)、回声消除、混音或者音调均衡的话,你可能需要直接使用音频单元,或者自己写一个音频单元。但是其中的大部分工作可以使用 AVFoundation 的 AVAudioEngine 的 API 来完成。如果你不得不写自己的音频单元的话,你可以将它们与 AVAudioUnit 节点一起集成在 AVAudioEngine 处理图中。

跨应用程序音频:Audio Unit 的 API 可以在 iOS 中进行跨应用音频。音频流 (和 MIDI 命令) 可以在应用程序之间发送。比如说:一个应用程序可以提供音频的效果器或者滤波器。另一个应用程序可以将它的音频发送到第一个应用程序中,并使用其中的音频效果器处理音频。被过滤的音频又会被实时地发送回原来的应用程序中。 CoreAudioKit 提供了一个简单的跨应用程序的音频界面。

VideoToolbox 框架
常用于流媒体直播,推流时对视频进行H264编解、解码。

你可能感兴趣的:(iOS 音视频开发(一)常用音视频框架介绍)