UIKit Framework Reference

—–UIKit Framework Reference

媒体层提供了图形、音频和视频技术支持,以达到移动设备上极佳的多媒体体验。

 

方法/步骤

  1.  

    一、图形技术

    高品质图形是iOS应用程序非常重要的一部分,蓝鸥iOS培训教程更细心,讲师授课都独到,最简单(和最有效)的方法来创建一个应用程序是使用预渲染图片与UI标准控件结合实现系统绘制。然而,有些时候你可能需要一些稍微复杂的图形,你可以使用下面的技术来管理你的图形内容:

    1、Core Graphics(Quartz)处理本地2D矢量图形和基于图像的渲染 ——-Core Graphics Framework

    2、Core Animation提供视图动画高级支持—–Quartz Core Framework

    3、Core Image提供视频和静态图片的高级支持—–Core Image Framework

    4、OpenGL ES和GLKit提供2D、3D硬件加速渲染接口——OpenGL ES Framework       GLKit Framework。

    5、Core Text提供了一个复杂的文本布局和渲染引擎。—–Core Text Framework。

    6、Image I/O提供大部分图像格式的读写接口。——-Image I/O Framework

    7、Assets Library framework提供了在用户相册访问图片和视频的接口——Assets Library Framework

    在大多数情况下,应用程序运行在Retina屏设备上几乎不用对代码做任何修改。你画的任何内容会自动支持高分辨率屏幕。基于矢量的绘图代码,系统框架自动帮你完成了像素的填充。如果你在程序中使用了图片,系统自动帮你加载高分辨率图片。——App-Related Resources介绍了如何适应高清屏幕

     

  2.  

    二、音频技术

    音频技术在iOS中被设计用来提供丰富的音频用户体验。这个体验包括:播放高品质音频,录制高品质音频,以及触发某些设备的震动功能。这些也都是我从蓝鸥教学中学到的,蓝鸥讲师都非常好,一点都不吝啬,而且一直以来口碑都不错,系统提供了几种方法来播放以及录制音频内容。接下来的框架列表是按照高层到底层的顺序列举的。Media Player Framework是最高层的音频接口,当选择一个音频技术的时候,高层的框架是最容易使用也是最优先的。低层框架提供更大的灵活性和控制,但是需要你做更多的功能。

    (1)Media Player framework提供简单的方式访问用户的iTunes列表,支持播放列表并且能监测播放状态。——Media Player Framework

    (2)AV Foundation 提供了一系列简单易用的OC接口用于管理音频播放和录制。——AV Foundation Framework

    (3)OpenAL提供了一系列跨平台接口提供位置音频。——OpenAL Framework

    (4)Core Audio框架提供了简单和复杂接口来播放以及录制音频内容。你使用这个接口播放系统的警告,手机震动,管理缓冲,播放多通道本地或流音频内容。——Core Audio

    iOS支持以下音频格式:——Media Layer Frameworks

    AAC

    Apple Lossless(ALAC)

    A-law

    IMA/ADPCM(IMA4)

    Linear PCM

    u-law

    DVI/Intel IMA ADPCM

    Microsoft GSM 6.10

    AES3-2003

     

  3.  

    三、视频技术

    无论你播放应用程序的电影文件还是网络上的视频流,iOS提供了几种播放视频内容的技术。设备的硬件可以捕获视频并且应用到你的程序中。

    系统提供了几种途径播放以及录制视频,你可以根据需要选择使用这些技术。当选择一个视频技术,记住,高级框架帮你做了很多工作,简化了操作,应该首选高级框架。下面的框架列表是按从高到低顺序列举的。

    (1)UIImagePickerController类提供了使用设备录像的接口。

    (2)Media Player Framework提供了一系列简单易用呈现全屏或者小屏视频的接口。—–Media Player Framework

    (3)AV Foundation Framework提供了一些列OC接口用于管理捕获或者播放视频。—–AV Foundation Framework

    (4)Core Media 描述了高层框架使用的底层数据类型,提供了低层接口操作媒体。—–Core Media Framework

    iOS支持播放以下后缀的文件:.mov、.mp4、、m4v、.3gp

    压缩标准:

    H.264 视频最高达1.5Mbps,640×480像素,每秒30帧。低复杂度版本的H.264基本配置使用AAC-LC音频,最高达160Kbps,48kHZ,立体声,视频以.m4v、.mp4、.mov为后缀

    H.264 视频最高达768Kbps,320×240像素,每秒30帧。基本配置使用AAC-LC音频,最高达160Kbps,48kHZ,立体声,视频以.m4v、.mp4、.mov为后缀

    MPEG-4视频,最高达2.5Mbps,640×480像素,30帧每秒,基本配置使用AAC-LC音频,最高达160Kbps,48kHZ,立体声,视频以.m4v、.mp4、.mov为后缀

    想获得更多关于UIImagePickerController类的使用,参考Camera Programming Topics for iOS.

     

  4.  

    四、AirPlay

    AirPlay是一中能让你应用程序的音频流在Apple TV或者其他第三方的扬声器或者接收器上播放的技术。AV Foundation框架和Core Audio都内置了AirPlay。使用上述框架,一旦你选择使用AirPlay播放音频,都会被系统自动处理以及转换。

    在iOS5里,用户可以AirPlay将iPad2上的内容映射到Apple TV2上。开发者可以创建UIScreen对象通过AirPlay展示不同的内容到iPad2上。iOS5同样提供了多种方式通过AirPlay传递内容,包括使用AV Foundation Framework中的AVPLayer以及UIKit的中的UIWebView,此外,Media Player Framework支持显示 “正在播放”信息在多个地方。——-AirPlayOverView。 

    Media 层框架

    Assets Library Framework

    iOS4.0之后引入的,提供了一个基于查询的接口来检索用户设备上的照片和视频。使用这个框架,你可以在自己的程序内来访问 Photos 应用程序的相册以及视频资源。同样可以存储照片或者视频到相册。

     

    更多这个框架中类和方法的介绍,参考 Assets Libarry Framework Reference。

    AV Foundation Framework

    iOS2.2中引入,框架包含了用于播放音频内容的OC类。你可以使用这些类播放任意时长的基于文件或者内存的音频。你可以同事播放多个声音,可以控制每个声音的各个方面。iOS3.0之后,这个框架还可以录制音频以及管理音频会话。iOS4.0之后,这个框架的服务扩大到了:

    1、媒体资源管理

    2、媒体编辑

    3、电影捕捉

    4、电影回放

    5、跟踪管理

    6、媒体元素据管理

    7、立体声

    8、精确同步声音

    9、一个OC接口来确定声音的文件信息,例如数据格式,采样率,和声道数量。

    iOS5以后,AV Foundation Framework包含了支持通过AirPlay播放音频、视频流的类AVPlayer。AirPlay默认是启用的,但可以根据需要设置开启或关闭。

    AV Foundation Framework 是iOS中单独来录制和播放音频、视频的框架,相对于高级框架,在处理以及管理媒体资源上,提供了更为完美的支持 。

    更多这个框架中类和方法的介绍,参考AVFoundation Framework Reference。 

    Core Audio

    本地音频是有Core Audio家族一些列框架支持的,下面的表会列出这个家族。

     

    Framework   

    Services   

     

     

    CoreAudio.framework   

    定义了Core Audio中要用到的各种音频数据类型那个.

    —- Core Audio Framework Reference.   

     

     

    AudioToolbox.framework   

    提供音频文件和音频流的回放和录制服务,同样提供了管理音频文件,播放系统警告声音以及

    设备震动接口 . —- Audio Toolbox Framework Reference.   

     

     

    AudioUnit.framework   

    提供服务使用内置的音频单元,音频处理模块.—-Audio Unit Framework Reference.   

     

     

    CoreMIDI.framework   

    提供底层MIDI服务. —- Core MIDI Framework Reference.   

     

     

    MediaToolbox.framework   

    提供访问音频分接开关的接口.  

    Core Audio是一个基于C的接口,支持操作立体声音频,你可以使用Core Audio在iOS应用程序中生成、录制、混合以及播放音频。你还可以使用Core Audio来触发手机设备的震动功能。

    更多Core Audio的信息,参考Core Audio OverView. 关于如何使用Audio ToolBox Framework播放音频,参考Audio Queue Services Programming Guide。 

    Core Graphics Framework

    Core Graphics framework包含Quartz 2D绘图API接口。Quartz是OSX中先进的、基于矢量绘图引擎。它提供了支持基于路径图,反锯齿的渲染、渐变、图片、颜色、坐标空间转换和PDF文档创建、显示和解析。虽然API是基于C的,但是却采用了基于对象的方式抽象了画图对象,使它更容易存储和重用你的图像内容。

    更多关于如何使用Quartz绘图,参考Quartz 2D Programming Guide和Core Graphics Framework Reference。 

    Core Image Framework

    iOS5引入,提供了一套强大的内置过滤器用于操作视频和静态图片。你可以使用内置的过滤器实现简单的操作(触摸纠正照片)以及高级的操作(面部检测)。使用这些过滤器的优势是,它们在以无损的方式运作,保证你的原始图像是不会改变。此外,Core Image利用可用的CPU和GPU处理能力,确保操作是快速有效的。

    CIImage类提供了访问标准过滤器的方法,你可以使用它来提高照片的质量。创建其他类型的过滤器,你可以创建和配置一个CIFilter对象实现你需要的过滤器。

    更多关于Core Image Framework里类和过滤器的信息,参考 Core Image Reference Collection。 

    Core MIDI Framework

    iOS4.2引入,提供了标准的方法与MIDI设备通信,包括硬件键盘和合成器。你用这个框架来发送和接收MIDI的消息以及与能连接到iOS设备的设备交互(通过网路相连或者桥接器)。

    更多关于这个框架的信息,参考 Core MIDI Framework Reference 

    Core Text Framework

    iOS3.2引入,包含一组简单的、高性能的基于C的接口布局文本和处理文字。Core Image framework提供了一个完整的文本布局引擎,您可以管理文本在屏幕上的位置,你管理的文本可以使用不同的字体以及渲染属性。

    这个框架主要用于处理复杂文本,比如文本处理程序。如果你的应用程序只需要简单的文本输入和显示,你应该继续使用UIKit中的文本类。

    更多关于Core Text接口的信息,参考 Core Text Programming Guide和Core Text Reference Collection。 

    Core Video Framework

    iOS4引入,提供接口导入和导出图像数据和图像元素据,这个框架利用Core Graphics数据类型和函数支持所有iOS上可用的图像类型。

    iOS6之后,你可以使用这个框架来访问IPTC、EXIF元素据属性和图像。更多这个框架的函数和数据类型,参考 Image I/O Reference Collection。 

    GLKit Framework

    iOS5引入,包含一组基础工具类,简化了创建OpenGL ES2.0程序。GLKit支持四个关键领域的应用开发:

    1、GLKView和GLKViewController提供一个标准的实现视图和关联启用OpenGL ES的渲染循环。视图管理层framebuffer对象代表应用程序,你的程序只需要往上面画。

    2、GLKTextureLoader提供了图像转换和加载程序到您的应用程序,让它自动加载纹理图像到你的上下文,它可以同步或一部加载纹理。异步加载纹理时,您的应用程序提供了完成处理block,当你的被加载到上下文的时候触发。

    3、框架提供了实现GLKit向量、矩阵、四元素以及矩阵堆栈操作,提供相同的功能在Open GL ES 1.1中

    4、GLKBaseEffect、GLKSkyboxEffect和GLKReflectionMapEffect类提供现有的、可配置的图形着色器,实现常用的图形操作。特别是在OpenGL ES 1.1规范中,GLKBaseEffect类实现了照明和素材模型,简化了从OpenGL ES1.1到OpenGL ES 2.0迁移所需的工作。

    更多关于GLKit框架中类的介绍,参考GLKit Framework Reference。 

    Media Player Framework

    提供播放音频和视频内容高层支持,你可以使用系统标准接口播放视频。

    在iOS3.0,增加对用户iTunes音乐库的访问支持,你可以播放单个音乐和音乐列表,搜索歌曲以及呈现媒体选择界面给用户。

    在iOS3.2,增加了视频窗口的大小调整接口(以前视频只能是全屏的)。此外,增加了众多的接口来配置和管理电影的播放。

    在iOS5,增加了“正在播放”信息在锁屏界面。这些信息可以通过AirPlay显示在Apple TV上。还有接口能监测视频是否正在使用AirPlay显示。

    更多关于Media Player Framework中类的信息,参考Media Player Framework Reference.更多关于如何使用iTunes列表的信息,参考 iPod Library Access Programming Guide。 

    OpenAL Framework

    OpenAL接口是一个跨平台的音频接口,你可以在游戏或其他程序中用它来完成高性能、高质量的音频服务。因为是一个跨平台的OpenAL标准,所以很容易使用它来实现跨平台。

    更多OpenAL的信息,以及如何使用它。 

    OpenGL ES Framework

    提供工具来绘制2D和3D内容。它是一个基于C的框架,与设备硬件紧密合作,为全屏游戏提供高帧率渲染。通常OpenGL框架结合EAGL接口使用,这些接口是OpenGL ES框架的一部分,在OpenGL ES绘画代码和UIKit框架中的视图、窗口对象之间提供接口。

    iOS3.0之后,包含了既支持OpenGL ES 2.0又支持OpenGL ES 1.1的接口规范。2.0规范提供了支持片段或顶点着色的着色器(仅支持部分iOS设备,且iOS系统在3.0以上)。1.1规范支持所有iOS设备以及所有iOS系统版本。

    更多关于如何在应用程序中使用OpenGL ES的信息,参考OpenGL ES Programming Guide for iOS。 

    Quartz Core Framework

    包含Core Animation接口,Core Animation是一个先进的动画合成技术,优化渲染路径来实现复杂的动画和视觉效果。它提供了一个高层次的OC接口(使用硬件性能)来配置动画效果,你可以使用OC接口创建自定义的动画。

    更多关于如何在程序中使用Core Animation的信息,参考Core Animation Programming Guide以及Core Animation Reference Collection。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s