iOS多媒体框架介绍
媒体层
媒体层包含图形技术、音频技术和视频技术,这些技术相互结合就可为移动设备带来最好的多媒体体验,更重要的是,它们让创建外观音效俱佳的应用程序变得更加容易。您可以使用iOS的高级框架更快速地创建高级的图形和动画,也可以通过底层框架访问必要的工具,从而以某种特定的方式完成某种任务。
图形技术
高质量的图形是iOS应用程序的重要组成部分。创建应用程序最简单最有效的方法是使用事先渲染过的图片,搭配上标准视图以及UIKit框架的控件,然后把绘制任务交给系统来执行。但是在某些情况下,您可能需要一些UIKit所不具有的功能,而且需要定制某些行为。在这种情况下,您可以使用下述技术管理应用程序的图形内容:
Core Graphics (也被称为Quartz),用于处理本地2D向量渲染和图片渲染。
Core Animation ( Quartz Core框架的一部分),为动画视图和其他内容提供更高级别支持。
OpenGL ES,为使用硬件加速接口的2D和3D渲染提供支持。
Core Text,提供一个精密的文本布局和渲染引擎。
Image I/O,提供读取及编写大多数图形格式的接口。
资产库框架(Assets Library framework),可用于访问用户照片库中的照片和视频。
大多数应用程序应该无需改动,或者只需做很少修改,便可运行在具备高分辨率屏幕的设备。因为在绘图或者操作视图的时候,您所指定的座标值会被映射到逻辑座标系统,它和底层屏幕分辨率没有关联。而且绘制的内容会自动根据需要按比例缩放,以此来支持高分辨率屏幕。对基于向量进行绘制的代码来说,系统框架会自动使用额外的像素来改善图画的内容,使其变得更清晰。如果应用程序中使用了图片,则可以利用UIKit自动加载现有图片的高分辨率版本。如您需进一步了解如何支持高分辨率屏幕,请查看iOS应用程序编程指南中的“支持高分辨率屏幕”。
如需进一步了解图像相关框架,请查看”媒体层框架“中相应的内容。
音频技术
iOS音频技术可帮助您为用户提供丰富多彩的音响体验。您可以使用音频技术来播放或录制高质量的音频,也可以用于触发发设备的震动功能(具有震动功能的设备)。
iOS系统提供数种播放或录制音频的方式供您选用。在选择音频技术的时候,请记住,要尽可能地选取高级框架,因为它们可以简化播放音频所需的工作。下面列出的框架从高级到低级排列,,媒体播放器框架(Media Player framwork)提供的是最高级的接口:
媒体播放器框架。该框架可以让访问用户的iTume库变得很容易,并且支持播放曲目和播放列表。
AV Foundation框架。它提供一组简单易用的Objective-C接口,可用于管理音频的播放或录制。.
OpenAL框架。它提供一组跨平台,用于发布方位音频的接口。
Core Audio框架。它提供的接口简单而精密,可用于播放或录制音频内容。您可以使用这些接口播放系统的警报声音、触发备的震动功能、管理多声道的缓冲和播放、对音频内容进行流化处理。
iOS音频技术支持下述音频格式:
AAC
Apple Lossless (ALAC)
A-law
IMA/ADPCM (IMA4)
Linear PCM
µ-law
DVI/Intel IMA ADPCM
Microsoft GSM 6.10
AES3-2003
如需进一步了解上述音频框架,请查看”媒体层框架“中相应的内容。
视频技术
iOS有数种技术可用于播放应用程序包的电影文件以及来自网络的数据流内容。如果设备具有合适的视频硬件,这些技术也可用于捕捉视频,并可将捕获到的视频集成到应用程序。
系统提供也提供多种方法用于播放或录制视频内容,您可以根据需要选择。选择视频技术的时候,请尽可能选择高级框架,因为高级框架可以简化为提供对某种功能的支持所需的工作。下面列出的框架由高级到低级排列。其中,媒体播放器框架提供最高级的接口:
媒体播放器框架,它提供一组易于使用的接口,可用于播放应用程序中全屏或部分屏的电影。
AV Foundation框架,它提供一组Objective-C接口,可以对电影的捕捉和播放进行管理。
Core Media框架,它对较高级框架使用的底层类型进行描述,同时也提供一些底层接口,它们用于对媒体进行处理。
iOS视频技术支持播放的电影文件应具有.mov
、.mp4
、.m4v
以及.3gp
文件扩展名,而且文件应使用下述的压缩标准:
H.264视频,多达1.5 Mbps, 640x480像素,每秒30帧。 H.264 Baseline Profile 的 Low-Complexity 版本支持 AAC-LC 音频(
.m4v
、.mp4
以及.mov
文件格式中高达160Kbps ,48KHz 的立体音频)。H.264视频,高达68 Kbps,320x240像素,每秒30帧。达到Level 1.3的 Baseline Profile支持AAC-LC音频(
.m4v
、.mp4
以及.mov
文件格式中高达160Kbps ,48KHz 的立体音频)。MPEG-4视频,高达 2.5 Mbps, 640 x 480像素,每秒30帧。Simple Profile支持AAC-LC 音频(
.m4v
、.mp4
以及.mov
文件格式中高达160Kbps ,48KHz 的立体音频)。各种音频格式,包括 “音频技术”列出的清单。
如需进一步了解上述视频框架,请查看”媒体层框架“中相应的内容。
媒体层包含的框架
后续部分对媒体层的框架和框架所提供的服务进行说明。
资产库框架
iOS 4.0引入了资产库框架(AssetsLibrary.framework
),该框架提供一个查询界面,您可以通过它查找用户照片和数据。通过使用该框架,您可以访问Photos管理的资产,包括用户保存的相册以及导入到设备中的图片或视频。而且您也可以将照片或者视频保存到用户的相册。
如需进一步了解该框架,请查看资产库框架参考。
AV Foundation 框架
iOS 2.2引入了AV Foundation 框架 (AVFoundation.framework
),该框架包含的Objective-C 类可用于播放音频内容。通过使用该框架,您可以播放声音文件或播放内存中的音频数据,也可以同时播放多个声音,并对各个声音的播放特定进行控制。
在 iOS 4.0及后续版本中,该框架提供的服务得到很大的扩展,下述的服务现在也包含在框架中:
媒体资产管理
媒体编辑
电影捕捉
电影播放
曲目管理
媒体项的元数据管理
立体声淘选
不同声音的精确同步
用于判断声音文件详细信息的Objective-C接口,例如判断数据格式、采样率和声道数。
AV Foundation框架是iOS中录制播放音频和视频的唯一框架,该框架还支持对媒体项进行管理和处理。
如需进一步了解AV Foundation框架,请查看AV Foundation 框架参考。
Core Audio
表3-1列出来的Core Audio框架家族为音频提供本地支持。Core Audio框架提供C语言接口,可用于操作立体声音频。通过iOS系统Core Audio框架,您可以在应用程序中生成、录制、混合或播放音频,您也可通过该框架访问设备的震动功能(支持震动功能的设备)。
框架 |
服务 |
---|---|
|
定义Core Audio框架家族使用的音频数据类型。 |
|
播放或录制音频文件或数据流,也可用于管理音频文件、播放系统警告声音、触发某些设备的震动功能。 |
|
为内置音频单元服务,内置音频单元是指音频处理模块。 |
如需进一步了解Core Audio,请参考Core Audio 概述。如需了解如何使用Audio Toolbox 框架播放声音,请查看音频队列服务编程指南r以及Audio Toolbox框架参考。
Core Graphics 框架
Core Graphics框架 (CoreGraphics.framework
)包含Quartz 2D绘图API接口 。Quartz 是Mac OS X系统使用的向量绘图引擎,它支持基于路径绘图、抗锯齿渲染、渐变、图片、颜色、坐标空间转换、PDF文件的创建、显示和解析。虽然API基于C语言,但是它使用基于对象的抽象以表示基本绘图对象,这样可以让开发者可以更方便地保存并复用图像内容。
如需进一步了解如何使用Quartz绘制内容,请查看 Quartz 2D 编程指南 以及Core Graphics框架参考。
Core Text 框架
iOS 3.2引入了Core Text框架(CoreText.framework
),该框架包含一组简单高效的C接口,可用于对文本进行布局以及对字体进行处理。Core Text框架提供一个完整的文本布局引擎,您可以通过它管理文本在屏幕上的摆放。所管理的文本也可以使用不同的字体和渲染属性。
该框架专为诸如字处理程序这类需要具有精密文本处理功能的应用程序而设计。如果您的应用程序只需要一种文本输入和显示,则应使用UIKit框架中已有的类。
如需进一步了解 Core Text接口的使用方式,请参考Core Text 编程指南和Core Text 参考集。
Core Video 框架
iOS 4.0引入了 Core Video框架 (CoreVideo.framework
) ,该框架为Core Media提供缓存和缓存池的支持。大多数应用程序都不应该直接使用该框架。
Image I/O 框架
iOS 4.0引入 Image I/O 框架 (ImageIO.framework
),该框架的接口可用于导入或导出图像数据及图像元数据。该框架建构于 Core Graphics数据类型和函数之上,能够支持iOS 上所有的标准图像类型。
如需进一步了解该框架的数据类型和函数,请查看mage I/O 参考集。
媒体播放器框架
媒体播放器框架 (MediaPlayer.framework
)为应用程序播放视频和音频内容提供高级支持。通过该框架,您就可以使用标准系统界面播放视频。 iOS 3.0增加了对访问用户iTune库的支持。因此,您可以利用该框架播放音乐曲目、播放列表、搜索歌曲并向用户显示媒体选取界面。
在 iOS 3.2系统中,该框架发生了变化,开始支持在可改变尺寸的视图中播放视频(之前只支持全屏)。另外还新增数个界面用于支持配置和管理电影播放。
如需进一步了解媒体播放器框架中的类,请查看媒体播放器框架参考。如需了解如何使用该框架访问用户的 iTunes库,请查看iPod 库访问编程指南。
OpenAL 框架
除了Core Audio之外,, iOS 还支持 Open Audio Library (OpenAL)。OpenAL接口是在应用程序中发布方位音频的跨平台标准。通过使用该框架,您可以在游戏或者要求有方位音频输出的程序中实现高性能、高质量的音频。OpenAL是跨平台的标准,iOS平台使用OpenAL编写的代码模块可以移植到许多其他的平台运行。
如需了解OpenAL及其使用方式,请查看http://www.openal.org。
OpenGL ES 框架
OpenGL ES框架 (OpenGLES.framework
)提供的工具可用于绘制2D及3D内容。该框架基于C语言,能够和设备硬件紧密协作,为全屏游戏类型的应用程序提供很高的帧速率。
OpenGL框架需要和EAGL接口结合使用。这些接口是 OpenGL ES 框架的一部分,它们是OpenGL ES绘图代码及应用程序中的窗口对象的接口。
在 iOS 3.0及其后续版本的系统中,OpenGL ES 框架同时支持 OpenGL ES 2.0 及OpenGL ES 1.1 接口规范。2.0规范支持分段和点着色,只有运行iOS 3.0及其后续版本的设备才支持2.0。所有版本的iOS及iOS设备都支持OpenGL ES 1.1规范。
如需了解如何在应用程序中使用OpenGL ES,请查看iOS OpenGL ES编程指南。如果需要参考信息,请查看OpenGL ES框架参考。
Quartz Core 框架
Quartz Core框架 (QuartzCore.framework
)包含Core Animation接口。Core Animation是高级动画制作和混合技术,它使用经过优化的渲染路径实现复杂的动画和视觉效果。它提供的高级Objective-C接口可对动画效果进行配置,然后在设备硬件中进行渲染,以此来提高程序的性能。Core Animation框架被整合到iOS的许多部分(包括UIKit框架中的许多类(如UIView
)),可以为多种系统行为提供动画效果。您也可以使用该框架中的Objective-C接口直接创建定制动画。
如需进一步了解如何在应用程序中使用Core Animation,请查看Core Animation Programming Guide and Core Animation参考集。
iOS多媒体框架介绍的更多相关文章
- ios中框架介绍
ios中框架介绍 参考博客: 参考文章:框架介绍 框架介绍 框架就是一个目录,一个目录包含了共享库,访问共享库里面的代码的头文件,和其他的图片和声音的资源文件.一个共享库定义的方法和函数可以被应用程序 ...
- iOS 常用框架介绍
iOS框架介绍 Cocoa Touch GameKit 实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息 iOS设备之间蓝牙数据传输 从iOS7开始过期 局域网游 ...
- IOS主要框架介绍(转)
本文是<Sunvey the Major Framworks>一文的翻译 框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件.一个共享库定义的方法 ...
- Vitamio 多媒体框架 介绍
功能 Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染.Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐.到目前 ...
- iOS学习——iOS 整体框架及类继承框架图
整理自:IOS 整体框架类图值得收藏 一 整体框架 在iOS开发过程中,对iOS的整理框架的了解和学习是必不可少的一个环节,今天我们就好好来了解一下iOS的整体框架.首先贴一个关于iOS的框架介绍:i ...
- iOS框架介绍
iOS框架介绍 Cocoa Touch GameKit 实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息 iOS设备之间蓝牙数据传输 从iOS7开始过期 局域网游 ...
- Android的多媒体框架OpenCore介绍
网上资料很少, 不过还是找到一个比较详细的说明: 特地在此整理了下: 地址:http://blog.csdn.net/djy1992/article/details/9339787 分为几个阶段: 1 ...
- iOS开发-常用第三方开源框架介绍
iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...
- [iOS 主要框架的总结]
原文地址:http://blog.csdn.net/GooHong/article/details/28911301 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件, ...
随机推荐
- 服务器端将复合json对象传回前端
前端接收后端传过来的JSON对象,对前端来说,传过来的确实就是JSON对象:但后端,类型则灵活得多,可以是IList<>等类型,当然也可以是newtonsoft的JObject类型.反正在 ...
- HTTP要点概述:十一,HTTP状态码
一,状态码: 状态码告知从服务器返回的请求结果.用户借助状态码可以判断服务器是正常处理了请求,还是发生了错误. 状态码比如200 OK,以3位数字和原因短语组成. 数字中的第一位制定了相应的类别,后两 ...
- go1
关键字: break default func interface select case defer go map struct chan else goto package switch cons ...
- ubuntu-10.10嵌入式开发环境搭建【转】
本文转载自:http://blog.csdn.net/zjhsucceed_329/article/details/8036781 版权声明:本文为博主原创文章,未经博主允许不得转载. ubuntu- ...
- override (C# Reference)
https://msdn.microsoft.com/en-us/library/ebca9ah3.aspx The override modifier is required to extend o ...
- luogu 3953 逛公园
noip2017 D1T3 逛公园 某zz选手看到数据范围直接就最短路计数了,结果写错了爆零 题目大意: N个点M条边构成的有向图,且没有自环和重边.其中1号点是起点,N号点是公园的终点,每条边有一个 ...
- bat 截取字符串(for命令) 推荐收藏
摘自:http://www.jb51.net/article/50354.htm 今天需要用批处理命令处理文件夹中的文件,需要用到bat中的for命令以及字符串截取的一些命令.在上面的链接中找到许多有 ...
- 利用 BASE64Encoder 对字符串进行加密 BASE64Decoder进行解密
转自:https://blog.csdn.net/chenyongtu110/article/details/51694323
- c#自定义ORM框架---(泛型&反射&实体类扩展属性<附带通用增、删、查、改>)
该教材主要是运用到泛型.反射和实体类扩展属性 步骤一.建立扩展属性类 实体类扩展属性要继承Attribute基类完成 [AttributeUsage(AttributeTargets.Property ...
- daily_journal_3 the game of thrones
昨晚追完了最爱的美剧(the game of thrones),哇,看到结局有点崩溃.果然还是美帝淫民开放,各种乱伦,在七夕收到的万点暴击就祝天下有情人就像剧中一样终是血亲. 昨天算是完成了git的复 ...