本文是本人自己辛苦翻译的,请转载的朋友注明,翻译于Z.MJun的CSDN的博客 http://blog.csdn.net/Zheng_Paul,感谢!
翻译于2015年10月5日
Media Layer
Media layer包括图像,音像和视频技术,在你的应用里实现多媒体体验。这些技术在这个层上能简单使你创建的应用看起来更,听起来更好。
图形技术 Graphics Technologies
高质量的图形式所有应用的重要部分之一,和IOS提供了许多技术来帮助你自定义设计和图形展示在屏幕上。IOS的图形技术提供了广泛的支持,无缝的运行在UIKit界面里,和容易的展现出来。你可以快速的高质量的展示标准的界面里,或者你可以创建你的个性化界面和使用以下技术来展示一个丰富的图形体验界面。
Graphics technologies in iOS
- UIKit图形
UIKit支持高级别的绘制图像,Bézier路径和应用中的动画效果。另外,提供类实现绘制,UIKit界面提供一种快速和不同的方法来浏览图片和基于文本的内容。应用可以使用动画,不仅明确而且使用了UIKit的动力学。提供回调和提高用户交互体验。 - Core Graphics framework 核心图形库
- Core Animation 核心动画
- Core Image 核心图像
- OpenGL ES and GLKit
- Metal
- TextKit and Core Text
- Image I/O
- Photos Library
IOS为运行的应用,不论是Retina显示,还是标准分辨路显示,都提供内置方法。对于矢量绘制,系统库自动的使用了Retina屏幕像素显示清晰的内容。如果你的应用中使用图像,UIKit提供支持自动加载高分辨率的图像。在App Programming Guide for iOS里的App-Related Resources。
Audio Technologies 音频技术
IOS音频与底层硬件为用户提供一个丰富的音频体验。这个体验包含显示和记录高质量的音频,控制MIDI内容和为设备播放内置的音效。
如果你想你的应用使用音频,有许多技术提供给你使用,如以下
Audio technologies in iOS
- Media Player framework
- AV Foundation
- OpenAL
- Core Audio
IOS支持许多工业标准和苹果指定的音频格式,包括
- ACC
- 苹果无损Apple Lossless(ALAC)
- A-law
- IMA/ADPCM (IMA4)
- Linear PCM
- µ-law
- DVI/Intel IMA ADPCM
- Microsoft GSM 6.10
- AES3-2003
Video Technologies 视频技术
IOS视频技术支持管理静态视频内容,和回放网络视频流内容。具有记录硬件的设备,你可以记录视频和合并在应用里。
Video technologies in iOS
- UIImagePickerController
- AVKit
- AV Foundation
- Core Media
IOS支持许多工业标准的视频格式和压缩标准
- H.264 video, up to 1.5 Mbps, 640 by 480 pixels, 30 frames per second, Low-Complexity version of the H.264 Baseline Profile with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
- H.264 video, up to 768 Kbps, 320 by 240 pixels, 30 frames per second, Baseline Profile up to Level 1.3 with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
- MPEG-4 video, up to 2.5 Mbps, 640 by 480 pixels, 30 frames per second, Simple Profile with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
AirPlay
Media Layer Frameworks
接下来的章节介绍的是媒体层的库和它们提供的服务
列表
- 4.0 相片视频 AssetsLibrary.framework (AL)
- 2.2 视频模块 _AVFoundation.framework
_ (AV) - 8.0 视频播放(新) _AVKit.framework
_ (AV) - 2.0 核心音频 _CoreAudio.framework
_(Audio) - 8.0 核心音频Kit _CoreAudioKit.framework
_ (CA) - 2.0 核心图形 _CoreGraphics.framework
_ (Guide) (CG) - 5.0 核心图画 _CoreImage.framework
_ (CI) - 3.2 核心字段 _CoreText.framework
_ (Guide) (CT) - 4.0 核心视频 _CoreVideo.framework
_(CV) - 7.0 游戏设备链接 _GameController.framework
_ (Guide) (GC) - 5.0 OpenGL ES _GLKit.framework
_ (GLK) - 4.0 图像IO ImageIO.framework(CG)
- 7.0 字幕 MediaAccessibility.framework(MA)
- 2.0 媒体播放器 MediaPlayer.framework (Guide)(MP)
- 8.0 GPU Metal.framework (Guide)(Metal Shading Language Guide)(MTL)
- 2.0 OpenAL音效 OpenAL.framework(AL)
- 2.0 OpenGLES OpenGLES.framework (Guide)(EAGL, GL)
- 8.0 相册 Photos.framework (PH)
- 8.0 相册UI PhotosUI.framework (Guide)(PH)
- 2.0 动画 QuartzCore.framework (Guide)(CA)
- 8.0 场景 SceneKit.framework(SCN)
- 7.0 精灵 SpriteKit.framework (Guide)(SK)
4.0 相片视频 AssetsLibrary.framework
进入管理相片和视频,使用这个库可以保存相册或者把相片保存在设备里面,同也可以把新的照片和视频保存到系统的相册里。(AL)2.2 视频模块 _AVFoundation.framework
_
提供一些列OBJ-c的管理音频和视频的工具,如播放,记录,管理等。这个库具有无缝整合音像的能力,并且提供许多高级处理功能。例如,同时播放多个不同的声音,控制多方面的回访或记录的过程。(AV)- 管理Audio session,包括支持从系统获得音频功能的声明
- 管理应用的音像资源
- 编辑音像内容
- 具有捕捉音像的能力
- 回放功能
- 音像追踪管理
- 媒体单元的数据管理
- 立体播放模式
- 声音间的精密同步
- 获取音频文件的属性,如数据格式,比特率和声道等
- 支持流播放,AirPlay
8.0 视频播放(新) _AVKit.framework
_
在设备上利用存在于AV Foundation的对象来管理视频的演示功能。当你使用MediaPlayer.Framework来播放视频内容可以使用它来取而代之。(AV)2.0 核心音频 _CoreAudio.framework
_
定义音频数据类型。 (Audio)8.0核心音频Kit _CoreAudioKit.framework
_
提供标准的界面来管理应用间的音频。一个提供类似应用选择器的界面,并且显示其他应用的音像,用户可以通过主应用开操作他们。(CA)2.0 核心图形 _CoreGraphics.framework
_ (Guide)
提供Quartz 2D的接口绘画Api。在OS X开发中,Quzrtz表现出的能力同样优秀,矢量化绘画引擎。这个库提供路径绘画,渲染,渐变,图片,颜色,坐标空间转化,PDF文档创建,显示和剖析等。这个Api是以C语言为基础的。它基于对象来展示基础的描绘对象,使得对象更容易存储和显示。(CG)5.0 核心图画 _CoreImage.framework
_
为可操作录音和静态图片提供了一系列强大的过滤器。你可以在拍下的图像,当前的图像,故事片或者二维码方向上使用过滤器。使用这个过滤器的优势在于都是无损处理的,使得你的原始图片不受到任何处理。因为这些过滤器都是设备硬件提供最佳的效果,并且他们即不同又快速。(CI)3.2 核心字段 _CoreText.framework
_ (Guide)
提供一个简单的,搞笑的,基于C语言的借口,来画制字段和处理字库。这个库可以帮助一些单词应用在TextKit库的情况,仍然可以使提升对字段的处理能力。这个库提供了复杂的字段排版引擎,包括有自动换行。并且可以支持使用多种高级的字体库,和具有渲染能力。(CT)4.0 核心视频 _CoreVideo.framework
_
包含最常规的可以操作的音频和视频。不要直接使用这个框架。(CV)7.0 游戏设备链接 _GameController.framework
_ (Guide)
在你的应用,这个库让你发现和配置可以使用在iPhone,iPad,iPod的已经设备上的游戏硬件。这库可以让设备物理性连接到一个IOS设备上或者使用蓝牙链接,当controllers可以使用,或者游戏设备输入相关的命令, 设个库会通知到你的应用。(GC)5.0 OpenGL ES _GLKit.framework
_
包含一些列基于OBJ-c的联合类,创建一个OpenGL ES app。(GLK)- GLKView 和GLKViewController类提供了一个标准可实现的OpenGL ES-enabled view,和渲染。这个View管理应用中的底层的帧缓存,你的应用只是描绘他。
- 在应用中,GLKTextureLoader类提供了图像转化和日常事件加载。允许加载纹理图片到类容中。可以同步加载或者异步加载纹理。当家在纹理同步时,纹理加载到内容中后,会发出完成通知Block。
- GLKBaseEffect, GLKSkyboxEffect和 GLKReflectionMapEffect,提供已有的,可以配置的图形着色器。使得使用一致的图形操作。特别的是GLKBaseEffect类实现照明和材料模型在OpenGL ES 1.1 specification,这个效果能使用在1.1版本或以上的OpenGL ES。
4.0 图像IO ImageIO.framework
提供了接口导入和导出图片数据,图片元数据等。这个库使用在核心图像数据处理,方法,支持所有显示在IOS的标准图片格式。同时你可以使用Exif和IPTC这两图像格式。(CG)7.0 字幕 MediaAccessibility.framework
在媒体文件下管理字幕展示内容。这个库工作在整合新设置下,使得用户可以显示字幕。(MA)2.0 媒体播放器 MediaPlayer.framework (Guide)
在应用里,播放高质量的音频和视频内容。(MP)- 播放视频的在用户的界面上,或者通过AirPlay播放到设备上。可以使用全屏或者调整比例大小的界面。
- 访问用户的iTune音乐库。你可以播放音乐的轨道,列表,搜索音乐,推出媒体Pircker到用户界面。
- 配置和管理电影播放器
- 在锁屏的界面上,显示当前播放信息。同时可以通过AirPlay在苹果TV上显示这些信息。
- 在AirPlay 上检测媒体流播放。
8.0 GPU Metal.framework (Guide)(Metal Shading Language Guide)
在极低消耗A7 CPU的情况下,能够绘制出复杂的图形和计算任务。这库减少了很多性能瓶颈,例如,昂贵的状态验证–传统的绘画APIs。这个库是专门针对这个问题设计的,汇编操作避开许多敏感代码编写的路径代码。提供了着色器预编译,对象状态,和明确的指令来确定你的应用可以高质量和高效能上去使用你的GPU绘图和计算任务。这个设计思想延展到工具上去建设你的引用。当你的应用正在Built,Xcode会整合库的着色器到项目里面的默认的库里,排除许多在运行上的准备成本。
绘图,计算和位运算都被设计在一起,使得运行时无缝与高效。Metal特别为现在的框架而设计的,例如多重处理和共享内存,使得他容易的执行GPU的命令。
在Metal下,你可以获得一个流的API,一个统一的绘图和计算纹理的语言,和Xcode的基础工具,以至于你不需要要学习许多库,语言和工具就可以在游戏和应用里提高GPU性能。(MTL)2.0 OpenAL音效 OpenAL.framework
库里的接口提供了跨平台的音频标准。你可以使用这开个库在游戏中来创建高质量,高效率的音效。或者其他程序需要输出音频。因为OpenAL是跨平台标准,在IOS上写OpenAL代码模块,很容易的移植到其他平台上。(AL)2.0 OpenGLES OpenGLES.framework (Guide)
提供工具绘画2D和3D内容,这是基于C语言的库,工作时,与硬件设备非常紧密,可以提供非常细微的纹理控制和高帧率的全屏应用,例如游戏。这个库可以与EAGL并行使用。EAGL接口给提供的接口在OpenGL ES drawing calls和界面之间。
这个库支持OpenGL ES1.1,2.0,3.0等。2.0标准支持碎片和顶点着色器和3.0标准增加了许多特性,包括多点描绘和变化反馈等。(EAGL, GL)8.0 相册 Photos.framework
提供新的APIs为图片和视频工作,包括iCloud相册, 管理相册的应用。这个库可以替换 Assets Library framework。关键的特性是包含一个安全现成的验证来捕捉,缓存,原始尺寸的相册,请求修改相册,从其他应用注意到变化和可修复修改的相册内容。
(PH)8.0 相册UI PhotosUI.framework (Guide)
在相册应用里,修改图片和视频相册。(PH)2.0 动画 QuartzCore.framework (Guide)
包含了核心的动画接口。核心动画是一个高级的影像合成技术。能容易的创建以View为基础的动画,动画效果流畅并且可以有不同复杂的组合。影像合成引擎在硬件的帮助下,使得动画内容不同并且即时运行。指定了动画的开始和结束的关键点,也可以使核心动画暂停。核心动画是在建立在UIView下一层次,所以能总是运行。(CA)8.0 场景 SceneKit.framework
SceneKit是一个OBJ-c库,为简单的游戏,丰富的3D图像用户界面提供高级高效能的阅读引擎,描写性API。SceneKit面向OS X v10.8和IOS。比较低级别的APIs,如OpenGL ES 需要你实现精确表现算法来显示一个场景。和SceneKit对比,SceneKit可以让你描述自己的场景,依据自己的场景内容—几何学,物件,光源和角度—使其生动有趣来描述对象的变化。
SceneKit的3D物理引擎是你的应用或者游戏变得生动来模拟重力,攻击,硬质物体的碰撞,和关节链接。添加高级别的行为,来使得更加容易的使用物体移动,如会车轮转动汽车在一个场景里面行驶,和添加一个物理区域使得物体有重力的效果,电磁学,或者在一个区域里流淌的物体的影响。(SCN)
使用OpenGL ES添加内容到一个场景里面,或者提供GLSL工具来替换或正大SceneKit的表现。你还可以增加基于着色的后处理技术到SceneKit的表现里,例如颜色分层,界面的空间环境遮罩。7.0 精灵 SpriteKit.framework (Guide)
([Media Layer Frameworks][4])
提供一个为2D和2.5D的硬件加速的动画系统。SpriteKit提供许多游戏的基本控件,包括动画引擎,图像渲染,音效,和物理引擎等。使用SpriteKit你可以免去自己创建这些,是你更专心与你设计的游戏内容,和游戏中的高级别游戏交互。
游戏内容在SpriteKit里,会组织成为一个场景。场景包括纹理对象,视频,路径,核心图片文件和别的特别效果。SpriteKit把这些东西以最好的效果展现在屏幕上。当在你的场景上使用这些,你可以使用SpriteKit可以明确的设定你想要的动作或者使用物理引擎来定义特定的物理效果。
除了这个库以外,也提供创建粒子效果和纹理地图的Xcode工具。你可以使用这些工具来管理应用的资源和快速升级SpriteKit的场景。(SK)