上层:
       Media Player Framework

包含MPMoviePlayerController、MPMoviePlayerViewController、MPMusicPlayerController、MPMediaPlaylist等一些比较高层的视频、音频类 。

       提供用于播放音频和视频内容从你的应用程序的高级支持。你可以使用这个框架来执行以下操作:

播放视频向用户的屏幕或其他设备通过AirPlay的。您可以播放此视频全屏或可调整大小的视图。

访问用户的iTunes音乐库。您可以播放音乐曲目和播放列表,搜索歌曲,并提出了一个媒体选择器界面提供给用户。

配置和管理电影播放。

现在显示在锁屏界面和应用程序切换播放信息。您也可以在Apple TV上显示此信息时,内容是通过AirPlay的交付。

当视频被流过AirPlay的检测。

AV foundation Framework:

该框架提供了一组Objective-C类的播放,录制和管理音频和视频内容。

音频会话管理,包括申请宣告你的应用程序的音频功能的系统支持

应用程序的媒体资产管理

支持编辑媒体内容

捕获音频和视频的能力

播放音频和视频的能力

跟踪管理

元数据管理的媒体项目

立体声声像

声音之间精确同步

一个Objective- C接口用于确定关于声音文件,如数据格式,采样率和声道数详情

支持超过AirPlay的流媒体内容

中层:
       Audio Toolbox framework

AudioConverter.h :音频转换器的API 。定义了用于创建和使用音频转换器的接口。

AudioFile.h :定义用于读取和写入文件中的音频数据的接口。
       AudioFileStream.h :定义解析音频文件流的接口。

AudioFormat.h :定义用于在音频文件的分配和读取的音频格式,元数据的接口。

AudioQueue.h :定义播放和录制音频的接口。

AudioServices.h :定义三个接口。系统声音服务可以让你玩短的声音和提醒。音频硬件服务提供了一个轻量级的接口与音频硬件进行交互。音频会话服务可以让iPhone和iPod touch的应用程序管理音频会议。

AudioToolbox.h :顶层包含文件的音频工具箱框架。

AUGraph.h :定义用于创建和使用音频处理图形界面。

ExtendedAudioFile.h :定义用于从文件中的音频数据直接转换为线性PCM接口,反之亦然。

Audio File Services Reference

a C programming interface that enables you to read or write a wide variety of audio data to or from disk or a memory buffer.

With Audio File Services you can:

Create, initialize, open, and close audio files

Read and write audio files

Optimize audio files

Work with user data and global information

 Audio converter

Audio converter objects convert between various linear PCM audio formats. They can also convert between linear PCM and compressed formats. Supported transformations include the following:

  PCM bit depth
  PCM sample rate
  PCM floating point to and from PCM integer
  PCM interleaved to and from PCM deinterleaved
  PCM to and from compressed formats

  Extended Audio File Services  提供了简化的音频文件访问,结合音频文件服务和音频转换器的服务功能。它提供了一个统一的接口用于读取和写入压缩以及线性PCM音频文件。

  Open AL framework:
  在ios文档中没有详细描述

  底层:
  Audio Unit framework

  音频单元提供快速,模块化的音频处理

  直接使用音频单元,而不是由更高级别的API,这样当您需要执行下列操作之一:

  同时音频I / O(输入和输出),低延时,如一个VoIP(互联网协议语音)应用程序

  合成的声音,如音乐游戏或合成乐器的响应回放

  使用特定的音频单元的功能,如声学回声取消,混合,或色调均衡

  的处理链的架构,可以让你组装的音频处理模块转变为灵活的网络。这是iOS中提供这种能力的唯一音频API。

  Core Media Framework:

  提供了一个低级别的C接口,用于管理和播放和视听媒体。

---------------------------------------------------------------------------------------- 

本人博客内容系个人学习与研究的笔记,如存在谬误或缺失,请见谅并指出,谢谢。
  本文地址:http://www.cnblogs.com/gugupluto/p/3584377.html

转载请注明来自:http://www.cnblogs.com/gugupluto/

----------------------------------------------------------------------------------------

iOS音频学习笔记二:iOS SDK中与音频有关的相关框架的更多相关文章

  1. Java学习笔记二十:Java中的内部类

    Java中的内部类 一:什么是内部类: (1).什么是内部类呢? 内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. (2).那为什么要将一个类定 ...

  2. (ios开发学习笔记一)ios项目文件结构

    转自:http://www.cnblogs.com/macroxu-1982/archive/2012/07/31/2616389.html 下面是单个窗体项目例子,我们从这个项目开始,说明ios项目 ...

  3. Java学习笔记二十七:Java中的抽象类

    Java中的抽象类 一:Java抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就 ...

  4. CodeIgniter学习笔记二:CI中的query_builder(AR)、连贯操作

    一.开启query_builder 在application\config\database.php中添加如下代码(默认已开启): $query_builder = TRUE; 二.查询数据 //ge ...

  5. 【Intel AF 2.1 学习笔记二】AF中的页面——Panel

    Panel Panel控件是你的app中的独立内容的区域控件.它是af UI的核心.Panel div 元素实际上承载了app中你管理和显示的界面元素和内容. 创建panel控件是相当地容易的:在id ...

  6. MyBatis学习笔记二:MyBatis生产中使用环境搭建

    这里是在上一个环境的基础上修改的,这里就不在给出所有的配置,只给出哪里修改的配置 1.修改POJO对象为注解方式 2.创建Dao层接口 package com.orange.dao; import c ...

  7. python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字

    python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...

  8. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  9. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

随机推荐

  1. Qt5.10使用了qml后打包发布应用遇到的问题

    现象: 按照https://www.cnblogs.com/judes/p/11247728.html的方法,能生成一些exe所需环境和动态库,但是打开程序,用到了qml的地方,全是黑色的. 原因: ...

  2. 常用OID(SNMP)

    系统参数(1.3.6.1.2.1.1) OID 描述 备注 请求方式 .1.3.6.1.2.1.1.1.0 获取系统基本信息 SysDesc GET .1.3.6.1.2.1.1.3.0 监控时间 s ...

  3. idea的alt+enter可以从菜单点吗

    在idea中,当java某个类的包没有引入的时候,可以通过alt+enter来实现包的引入,那么可以通过菜单按钮,或者右键的方式点出来吗? 我们知道eclipse如果某个类为止,放在这个报错的类上,e ...

  4. 【Leetcode_easy】1170. Compare Strings by Frequency of the Smallest Character

    problem 1170. Compare Strings by Frequency of the Smallest Character 参考 1. Leetcode_easy_1170. Compa ...

  5. 【Leetcode_easy】874. Walking Robot Simulation

    problem 874. Walking Robot Simulation solution1: 思路:1)如何表示移动的方向以及移动的位置坐标; 2)障碍物坐标如何检查;3)求解的是最大距离; cl ...

  6. RSA算法理解

    RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它.但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解.我们经 ...

  7. 开发环境下的 Kubernetes 容器网络演进之路

    马蜂窝技术原创文章,更多干货请搜索公众号:mfwtech 使用 Docker+Kubernetes 来简化开发人员的工作流,使应用更加快速地迭代,缩短发布周期,在很多研发团队中已经是常见的做法. 如果 ...

  8. 【GStreamer开发】GStreamer基础教程05——集成GUI工具

    目标 本教程展示了如何在GStreamer集成一个GUI(比如:GTK+).最基本的原则是GStreamer处理多媒体的播放而GUI处理和用户的交互. 在这个教程里面,我们可以学到: 如何告诉GStr ...

  9. solr搜索结果转实体类对象的两种方法

    问题:就是把从solr搜索出来的结果转成我们想要的实体类对象,很常用的情景. 1.使用@Field注解 @Field这个注解放到实体类的属性[字段]中,例如下面 public class User{ ...

  10. PHP去重的简单写法

    PHP去重的简单写法用array_flip实现去重效果 <pre><?php$arr =array("a"=>"a1","b& ...