`

IOS媒体层

 
阅读更多

转自:http://wd397.blog.163.com/blog/static/60860635201281683054319/

 

媒体层包含图形技术、音频技术和视频技术,这些技术相互结合就可为移动设备带来最好的多媒体体验,更重要的是,它们让创建外观音效俱佳的应用程序变得更加容易。您可以使用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参考集

 

 

分享到:
评论

相关推荐

    ios多媒体开发demo

    在iOS平台上进行多媒体开发是一项重要的技能,特别是对于那些希望创建丰富用户体验的应用开发者而言。这个"ios多媒体开发demo"提供了一个基础的学习平台,尤其适合初学者入门。在这个项目中,主要涉及的是视频播放...

    ios-AVPlayer流媒体播放器.zip

    在iOS开发中,流媒体播放是一个非常重要的功能,特别是在处理音视频内容时。AVPlayer是Apple官方提供的一个强大且灵活的框架,用于播放音频和视频流。本项目"ios-AVPlayer流媒体播放器"正是基于AVPlayer进行开发,...

    jquery ios风格提示通知层

    【jQuery iOS风格提示通知层】是一种使用jQuery库创建的用户界面元素,旨在为Web应用程序提供类似于苹果iOS设备上的通知提示效果。这种设计风格通常包括滑入屏幕、具有半透明背景和简洁图标的通知条,用于向用户展示...

    iOS 开发 SDK 思维导图 (iOS Technology Overview)

    iOS系统主要由四个层次组成:应用层、媒体层、核心服务层和操作系统层。每个层次都包含了一系列的框架,这些框架为开发者提供了丰富的功能。 1. **应用层**:这是最外层,包含所有用户可以直接交互的应用程序。...

    iOS开发前期准备

    iOS系统架构分为四个层次,从底层到顶层依次为核心操作系统层、核心服务层、媒体层和可轻触层(Cocoa Touch层),这些层次共同构成了iOS应用开发的基础。 3.1.1 iOS系统介绍 iOS系统是苹果设备的核心,它提供了一个...

    ios几大框架汇总

    iOS 的基本框架分为四层:Cocoa Touch 层,多媒体层(Medias),核心服务层(Core Servers),核心 OS 层(Core OS),其中每一层都包含有很多种框架。 Foundation 框架是 iOS 框架中最重要的一部分,为所有应用...

    苹果iOS操作系统整体架构层次讲解.docx

    苹果iOS操作系统的整体架构可以分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。每个层次都有其特定的组件和功能,...

    IOS-使用ijkplayer简单demo

    - 自定义控制层:你可以根据需求自定义播放器的控制界面,比如添加播放/暂停按钮、进度条等。 - 缓冲优化:ijkplayer支持设置缓存策略和大小,可以优化在网络不稳定情况下的播放体验。 - 字幕支持:ijkplayer能够...

    TestVideoCapture 多媒体源码_ios源码

    CoreMedia提供底层的媒体数据处理,包括时间线管理和数据结构。而AVFoundation是苹果推荐的上层接口,用于音频和视频的捕获、编辑、播放等任务,它封装了CoreMedia的复杂性,为开发者提供了易用的API。 二、...

    安卓和ios对比

    它基于Darwin内核,并采用了多层架构,主要包括核心操作系统层、核心服务层、媒体层以及可触层。iOS系统以其高度集成性和优秀的用户体验著称。 **Android**则是一种基于Linux内核的开放源码操作系统,主要用于移动...

    Android与ios对比分析

    iOS的架构相对封闭,但也分为多个层面,包括应用程序层、Core Services层、Media层、Core OS层。其中,核心服务层提供如文件系统、网络服务等功能;Media层包含多媒体处理;Core OS层则包括操作系统内核和设备驱动...

    iOS图形图像及多媒体技术最佳实践源码

    在iOS开发中,图形图像和多媒体技术是提升用户体验的关键元素。这些技术涵盖了用户界面的设计、动画效果、视频处理、音频播放等多方面。本实践源码着重探讨了如何有效地运用这些技术来创建高性能、交互性强的应用。...

    iOS技术概述

    iOS架构分为三个层次:Cocoa Touch层、Media层和Core Services层,最后是Core OS层。Cocoa Touch层是用户界面的主要构建块,它包含了像Address Book UI、Event Kit UI、Game Kit、iAd、Map Kit、Message UI、UIKit等...

    iOS图形图像、动画和多媒体编程技术最佳实践配套源码

    3. **Core Animation**:Core Animation虽然名字中带有“Animation”,但其实它主要处理的是静态视图的渲染和层的管理。它是UIKit的底层技术,提供高性能的动画效果。通过修改CALayer的属性,如位置、大小、透明度等...

    H264-RTSP-Server-iOS

    2. **RTSP协议**:RTSP是一种应用层协议,用于控制多媒体数据的播放。它允许客户端通过发送指令来启动、暂停、停止或快进/回放媒体流。RTSP服务器接收这些指令,并实时响应,确保视频流的顺畅。 3. **iOS开发环境**...

    IOS简单介绍

    **iOS简介** iOS是由苹果公司开发的移动操作系统,主要用于iPhone、iPad和iPod touch等设备。自2007年首次发布以来,iOS已经成为全球最受欢迎的移动操作系统之一,以其流畅的用户体验、高度的安全性和丰富的应用...

    iOS开发入门(iPhone和iPad开发必看)

    - iOS是苹果公司专为iPhone、iPod touch和iPad设计的操作系统,基于Darwin构建,拥有四个层次的架构:核心操作系统层、核心服务层、媒体层和可轻触层(Cocoa Touch)。这四个层次提供了从硬件交互到应用程序接口的...

    ios 技术概述

    3. “Media层”:这一部分将介绍iOS的媒体框架,包括音频、视频和图像处理的功能。 4. “CoreServices层”:在这一层,文档会介绍为应用程序提供后台支持的服务框架,例如数据存储和网络通信。 5. “CoreOS层”:...

Global site tag (gtag.js) - Google Analytics