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系統提供數種播放或錄制音頻的方式供您選用。在選擇音頻技術的時候,請記住,要盡可能地選取高級框架,因為它們可以簡化播放音頻所需的工作。下面列出的框架從高級到低級排列,,媒體播放器框架(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, 640×480像素,每秒30幀。 H.264 Baseline Profile 的 Low-Complexity 版本支持 AAC-LC 音頻( .m4v、.mp4以及.mov文件格式中高達160Kbps ,48KHz 的立體音頻)。

H.264視頻,高達68 Kbps,320×240像素,每秒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框架,請查看。

 

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,請參考。如需了解如何使用Audio Toolbox 框架播放聲音,請查看r以及。

 

Core Graphics 框架

Core Graphics框架 (CoreGraphics.framework)包含Quartz 2D繪圖API接口 。Quartz 是Mac OS X系統使用的向量繪圖引擎,它支持基于路徑繪圖、抗鋸齒渲染、漸變、圖片、顏色、坐標空間轉換、PDF文件的創建、顯示和解析。雖然API基于C語言,但是它使用基于對象的抽象以表示基本繪圖對象,這樣可以讓開發者可以更方便地保存并復用圖像內容。

如需進一步了解如何使用Quartz繪制內容,請查看 以及。

 

Core Text 框架

iOS 3.2引入了Core Text框架(CoreText.framework),該框架包含一組簡單高效的C接口,可用于對文本進行布局以及對字體進行處理。Core Text框架提供一個完整的文本布局引擎,您可以通過它管理文本在屏幕上的擺放。所管理的文本也可以使用不同的字體和渲染屬性。

該框架專為諸如字處理程序這類需要具有精密文本處理功能的應用程序而設計。如果您的應用程序只需要一種文本輸入和顯示,則應使用UIKit框架中已有的類。

如需進一步了解 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 上所有的標準圖像類型。

如需進一步了解該框架的數據類型和函數,請查看。

 

媒體播放器框架

媒體播放器框架 (MediaPlayer.framework)為應用程序播放視頻和音頻內容提供高級支持。通過該框架,您就可以使用標準系統界面播放視頻。 iOS 3.0增加了對訪問用戶iTune庫的支持。因此,您可以利用該框架播放音樂曲目、播放列表、搜索歌曲并向用戶顯示媒體選取界面。

在 iOS 3.2系統中,該框架發生了變化,開始支持在可改變尺寸的視圖中播放視頻(之前只支持全屏)。另外還新增數個界面用于支持配置和管理電影播放。

如需進一步了解媒體播放器框架中的類,請查看。如需了解如何使用該框架訪問用戶的 iTunes庫,請查看。

 

OpenAL 框架

除了Core Audio之外,, iOS 還支持 Open Audio Library (OpenAL)。OpenAL接口是在應用程序中發布方位音頻的跨平臺標準。通過使用該框架,您可以在游戲或者要求有方位音頻輸出的程序中實現高性能、高質量的音頻。OpenAL是跨平臺的標準,iOS平臺使用OpenAL編寫的代碼??榭梢砸浦駁叫磯嗥淥鈉教ㄔ誦?。

如需了解OpenAL及其使用方式,請查看。

 

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,請查看。如果需要參考信息,請查看。

 

Quartz Core 框架

Quartz Core框架 (QuartzCore.framework)包含Core Animation接口。Core Animation是 高級動畫制作和混合技術,它使用經過優化的渲染路徑實現復雜的動畫和視覺效果。它提供的高級Objective-C接口可對動畫效果進行配置,然后在設備 硬件中進行渲染,以此來提高程序的性能。Core Animation框架被整合到iOS的許多部分(包括UIKit框架中的許多類(如UIView)),可以為多種系統行為提供動畫效果。您也可以使用該框架中的Objective-C接口直接創建定制動畫。

如需進一步了解如何在應用程序中使用Core Animation,請查看 and 。


來源:劉偉Derick-IOS應用開發(iPhone iPad 應用、游戲)瀟灑的程序員-博客園

上一篇: 沒有符合條件的記錄

下一篇: self.用法總結

分享到: 更多
欢乐生肖计划免费版 通比牛牛平台手机版 时时彩计划大小计划 棋牌捕鱼 三公棋牌游戏安卓版下载 欢乐生肖游戏怎么玩 北京时时开奖软件 北京飞艇开奖官方网站 六码三期倍投 分分彩彩后一100稳赚 最新pt电子游戏平台 重庆时时全天在线计划 快乐时时走势图 七乐彩开奖号码查询 ssc彩婆计划软件 彩神幸运飞艇平刷