本文转载至 http://blog.csdn.net/u014011807/article/details/40187737

在本卷你可以学到什么?

采用四种方法设计应用于各种场合的音频播放器:

基于AudioToolbox.framework框架。播放系统声音文件。

基于AVFoundation.framework框架。播放多种音频格式文件。具有高级音频播放器功能。如实时显示进度、功率,控制音量、播放时间等。

基于OPENAL框架。实现对本地音频文件播放,播放pcm音频文件,3D音频特效。

基于AUDIOQUEUE音频队列。实现对音频信号流播放。可以分段提取音频流数据。

利用FFMPEG完成对音频信号编解码,如wav、mp3等音频文件类型。

结合Matlab仿真软件实现特殊音效处理。如汤姆猫音频。

利用SOUND TOUCH开源库,实现各种高级音频处理。如男声变女声。

 

iOS多媒体层结构概述

IOS从体系结构上一般可以分为四个层次,如图1所示。分别是Cocoa 触摸框架层(theCocoa Touch layer)、媒体层(the Media layer)、核心服务层(the Core Services layer)、核心操作系统(the Core OS layer)。

手机带给用户的直接体验无外乎音频、图像、视频。因而多媒体层在整个IOS的体系结构中扮演着非常重要的角色。利用IOS提供的音频、图像、视频框架可以帮助IOS开发人员快速的完成客户提出的高级音视频动画体验。同时这些框架也为开发人员访问底层结构提供了一条便捷之路。下面分别就音频、图像、视频三个方面介绍多媒体层的构成情况。

音频技术层:

音频技术层设计到的框架主要有:AVFoundation.framework、CoreAudio.framework、AudioToolbox.framework、AudioUnit.framework、OpenAL.framework 等。每个技术层都包含了众多的framework框架,而每一种框架中又有各种OC类的方法。在这里我们选择几种较为重要的类向大家介绍一下。

AVFoundation.framework:

AVFoundation.framework是音频技术层中非常重要的一个层,利用其包含的众多OC方法可以很方便的定制各种音频播放器,并实现一些高级功能。AVFoundation可以播放系统中声音文件以及原始音频数据。当然利用此框架还可以实现声音的混叠效果,同时控制多个音频文件的播放。

CoreAudio.framework:

主要用于定制各种音频的数据类型。

AudioToolbox.framework:

可以播放或者录制音频文件。同时还可以对原始音频数据文件进行操作。经过一定的设置还可以实现震动等效果。

OPEN AL.framework:

Open al( Open Audio Library)是一项跨平台的音频处理方案。通过此框架可以方便的实现各种音频文件的播放。同时还可以实现对pcm音频文件的播放。尤其是在3D音效技术中,具有非常重要的作用。通过此技术可以很方便的在游戏以及一些特殊的场合实现3D音频特效。

IOS音频技术层可以播放各种音频格式的音频文件,同时也可以播放已经定制安装相应音频编解码器的音频文件。具体来说主要支持以下几种音频文件:

WAV:WAV是微软公司开发的一种音频格式,它几乎没有对采集的数字音频信号进行失真处理,因此可以很好的还原声音的原始信息。

MP3:是今年来最流行的音频处理算法,它在不对音质造成太大影响的情况下最大限度的压缩了数据的大小。

AAC:AAC音频文件的全称是Advanced Audio Coding,采用和mp3完全不同的数据压缩算法,相较于mp3来说具有更高的性价比,音质较好。

Caf:ios设备录音时经常存储的一种音频文件类型。

……

图像技术层:

图像处理是视频处理的基础,同时也是人们视觉体验种非常重要的部分。图像技术层设计到的技术主要有:Core Graphics、Core Animation、Image I/O、OpenGL ES等。正是由于图像技术层提供了这些众多的工具,才能使得我们方便的对图像进行处理。下面我们简单介绍一下每种技术的作用。

Core Graphics:

Core Graphics(CoreGraphics.framework)主要利用Quartz2D实现对二维图像的处理,因此也经常将其称之为Quartz 2D技术。

Core Animation:

与二维图像处理相对应,Core Animation主要应用于二维动画的制作,以及一些高级高级视觉效果的渲染。

Image I/O:

Image I/O(ImageIO.framework)可以看出是图像的输入输出管理,可以利用此框架处理图像的基本像素信息。该框架的使用是建立在 Core Graphics数据类型和函数之上的。

OpenGL ES:

OpenGL ES(OpenGLfor Embedded Systems)是Open Gl专门针对嵌入式操作系统量身定制的。提供完备的2d、3d图像处理API,功能非常强大。是游戏图像、高清图像的首先技术方案。

IOS兼容多种图像格式,如常用的png、jpeg、bmp等都有很好的支持。

视频技术层:

目前3G在国内已经基本普及,而由此带来的高速率视频下载、花哨的视频分享已成为ios系统的一个重要特点。为了方便开发人员可以方便定制自己个性的播放器,ios提供了众多视频应用框架。Media play.framework

Media play.framework:

Media play.framework可以看作是一款高级视频播放器的框架,利用此框架你可以快速的设计出一个视频播放器。但缺点是不方便用户在上面进行二次开发。

ios可以播放多种视频类型文件,如mp4、m4v、3gp、mov等。

IOS音频1:之采用四种方式播放音频文件(一)AudioToolbox AVFoundation OpenAL AUDIO QUEUE的更多相关文章

  1. ios页面间传递参数四种方式

    ios页面间传递参数四种方式 1.使用SharedApplication,定义一个变量来传递. 2.使用文件,或者NSUserdefault来传递 3.通过一个单例的class来传递 4.通过Dele ...

  2. java 20 -10 字节流四种方式复制mp3文件,测试效率

    电脑太渣,好慢..反正速率是: 高效字节流一次读写一个字节数组 > 基本字节流一次读写一个字节数组 > 高效字节流一次读写一个字节 > 基本字节流一次读写一个字节 前两个远远快过后面 ...

  3. IOS数据本地存储的四种方式--

    注:借鉴于:http://blog.csdn.net/jianjianyuer/article/details/8556024 在IOS开发过程中,不管是做什么应用,都会碰到数据保存问题.将数据保存到 ...

  4. Java使用基本字节流OutputStream的四种方式对于数据复制(文本,音视频,图像等数据)

    //package 字符缓冲流bufferreaderDemo; import java.io.BufferedOutputStream; import java.io.FileInputStream ...

  5. iOS 登陆的实现四种方式

    iOS 登陆的实现四种方式 一. 网页加载: http://www.cnblogs.com/tekkaman/archive/2013/02/21/2920218.ht ml [iOS登陆的实现] A ...

  6. C#批量插入数据到Sqlserver中的四种方式

    我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...

  7. C#_批量插入数据到Sqlserver中的四种方式

    先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记 ...

  8. JAVA解析XML的四种方式

    java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...

  9. Spring事务管理的四种方式(以银行转账为例)

    Spring事务管理的四种方式(以银行转账为例) 一.事务的作用 将若干的数据库操作作为一个整体控制,一起成功或一起失败.   原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不 ...

随机推荐

  1. Selenium常用操作汇总二——如何操作cookies(转)

    Web 测试中我们经常会接触到Cookies,一个Cookies主要属性有”所在域.name.value.有效日期和路径",下面来讲一下怎么操作Cookies. import java.ut ...

  2. (笔记)Mysql命令desc:获取数据表结构

    desc命令用于获取数据表结构. desc命令格式:    desc 表名;同样    show columns from 表名;也能获取数据表结构. 举例如下:mysql> desc MyCl ...

  3. hostapd作为radius服务器

    使用hostapd作为radius服务器,用于企业wifi加密认证. 参考链接: http://www.cnblogs.com/claruarius/p/5902141.html 去网上下载hosta ...

  4. (转)WAVE PCM 声音文件格式

    WAVE文件格式是Microsoft为存储多媒体的RIFF规范的一部分.一个RIFF文件以一个文件头开始,然后是一系列的数据块.一个WAVE文件常常仅由一个WAVE块构成,WAVE块包含一个说明格式的 ...

  5. R语言 vegan包计算物种累计曲线

    vegan 包是进行群落数据分析最常用的R包,其中的 specaccum 函数用来计算物种的累计曲线 首先看下官方示例: library(vegan) data(BCI) sp1 <- spec ...

  6. shell 下执行mysql 命令

    From: http://blog.csdn.net/beginning1126/article/details/8590014 方案1 mysql -uuser -ppasswd -e 优点:语句简 ...

  7. 纯CSS3实现牛奶般剔透的3D按钮特效

    今天我们要来看一款非常特别的纯CSS3 3D按钮,它的外观酷似纯白剔透的牛奶,点击按钮的时候还会出现一种很柔和的弹力效果.按钮按下时,按钮会轻轻的弹动一下,非常逼真.本文我们在观赏演示的同时,也将源代 ...

  8. 【WP8】ScrollViewer滑动到底触发器(ListBox失效)

    很多时候会有到底加载更多的需求,而ScrollViewer不支持继承,无法继承它进行扩展,只能通过触发器来控制到底的事件(当然,可以通过UserControl去扩展) 思路:定义一个Trigger,自 ...

  9. MySQL死锁分析

    死锁问题背景 做MySQL代码的深入分析也有些年头了,再加上自己10年左右的数据库内核研发经验,自认为对于MySQL/InnoDB的加锁实现了如指掌,正因如此,前段时间,还专门写了一篇洋洋洒洒的文章, ...

  10. Oracle 高级查询

    Oracle SQL 一些函数用法 以下sql环境都是在 Oracle 11g/scott完成 Group by 与GROUP BY一起使用的关建字 GROUPING,GROUP SET,ROLLUP ...