Media层

媒体层包含图形技术、音频技术和视频技术,这些技术相互结合就可为移动设备带来最好的多媒体体验,更重要的是,它们让创建外观音效俱佳的应用程序变得更加容易。您可以使用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框架,您可以在应用程序中生成、录制、混合或播放音频,您也可通过该框架访问设备的震动功能(支持震动功能的设备)。
















3-1  
Core Audio框架

框架

服务

CoreAudio.framework

定义Core Audio框架家族使用的音频数据类型。

AudioToolbox.framework

播放或录制音频文件或数据流,也可用于管理音频文件、播放系统警告声音、触发某些设备的震动功能。

AudioUnit.framework

为内置音频单元服务,内置音频单元是指音频处理模块。

如需进一步了解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参考集

时间: 2024-10-05 06:37:46

Media层的相关文章

iOS 多媒体编程

首先了解一下ios系统的四层结构 1. Core OS   核心操作系统层 2. Core Services  核心服务层 3. Media  媒体层 4. cocoa touch层 Media层就是支持多媒体播放的 ios9以后官方推荐使用AVKit  和AVFoundtion框架来实现视频的播放 - (IBAction)click:(id)sender { //创建播放器控制器 AVPlayerViewController * playerVc = [[AVPlayerViewControl

iOS的系统层级结构和相关的框架

一,概述 iOS的系统架构分为四个层次:核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒体层(Media layer)和可触摸层(Cocoa Touch layer).理解iOS的系统构架,对我们日常开发有很大帮助.其实iOS是基于UNIX的,所以我们完全可以相信这个操作系统,要知道从系统的稳定性上来说它要比其他操作系统的产品好很多. 二, IOS操作系统的层次结构及相关框架 1.Core OS 核心层:包含Accelerate Framew

【iOS开发之旅】iOS系统架构

iOS的系统架构分为四个层次:核心操作系统层(Core OS ).核心服务层(Core Services ).媒体层(Media )和可触摸层(Cocoa Touch ).下面是IOS系统结构图. 一.Core OS(核心操作系统层) 是用FreeBSD和Mach所改写的Darwin, 是开源.符合POSIX标准的一个Unix核心.这一层包含或者说是提供了整个iPhone OS的一些基础功能,比如:硬件驱动, 内存管理,程序管理,线程管理(POSIX),文件系统,网络(BSD Socket),以

iOS层次架构

iOS的系统架构分为四个层次:核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒体层(Media layer)和可触摸层(Cocoa Touch layer). 1.Core OS层-----包含核心部分.文件系统.网络基础.安全特性.能量管理和一些设备驱动,还有一些系统级别的API. 2.Core Services层----提供核心服务,例如字符串处理函数.集合管理.网络管理.URL处理工具.联系人维护.偏好设置等. 3.Media层----

CoreAnimation (CALayer 动画)

CoreAnimation基本介绍: CoreAnimation动画位于iOS框架的Media层 CoreAnimation动画实现需要添加QuartzCore.Framework CoreAnimation基本上是LayerAnimation CoreAnimation分类: CoreAnimation作用: CoreAnimation CALayer基本介绍 CALayer的常用属性 CABasicAnimation CAKeyframeAnimation CAAnimationGroup

IOS学习笔记一

想学 IOS已久,但由于各项目太紧,另外因为比较懒,一直抽不出时间来学习.今天终于静下心,启动IOS学习计划. 工具准备:Mac一台,下载Xcode, 苹果实在太好了,什么东西都已经帮你做好了,连工具都集成好了.这点,android就显得太low了. 1. 了解一下IOS的四层结构, 由下往上依次是:Core OS(系统Lib层,SDK的调用),   Core Services核心服务层,  Media层以及Cocoa Touch, 这里,可以跟安卓的四层结构作个对比, android四层由下而

Objective-C:Foundation框架-概述

iOS的整体架构(以iOS8为例)图如下: 从Cocoa Touch到Core OS下面四层包含了开发iOS应用程序所用到的所有API(第三方框架也是基于这几个层的).每个层又都包含了许多框架.框架就是由许多类.方法.函数.文档按照一定逻辑组织起来的集合,以便使我们的开发变得更容易.Foundation,顾名思义,就是为所有iOS应用程序开发奠定基础的框架,它不仅包含了如结构体.数组.字典.集合等对象集合,也包含了内存管理.处理基础文件系统.存储对象等. 下面分别介绍这四个层: 1.Cocoa

iOS UI编程_概述和程序的执行顺序

一iOS概述 UI设计的条件设置 iOS系统架构层次 二程序的执行顺序 一.iOS概述 iOS(最初,苹果公司并没有给随iPhone发行的iOS一个独立的称谓,直到2008年3月6日才给它取名为iPhone OS,并于2010年6月改名为现在的名字iOS)是由苹果公司为移动设备所开发的操作系统,支持的设备包括iPhone.iPod touch.iPad及Apple TV等.与Android及Windows Phone不同,iOS不支持非苹果的硬件设备.2007年1月9日苹果在Macworld大会

IOS计划 分析

1.基本介绍 IOS苹果公司iPhone.iPod touch和iPad操作系统和其他设备的发展. 2.知识点 1.IOS系统 iPhone OS(现在所谓的iOS)这是iPhone, iPod touch 和 iPad 设备的操作系统. 1.Core OS: 它是用FreeBSD和Mach所改写的Darwin, 是开源.符合POSIX标准的一个Unix核心.这一层包括或者说是提供了整个iPhone OS的一些基础功能,比方:硬件驱动, 内存管理.程序管理,线程管理(POSIX).文件系统,网络