Media layer包括圖像,音像和視頻技術,在你的應用裡實現多媒體體驗。這些技術在這個層上能簡單使你創建的應用看起來更,聽起來更好。
高質量的圖形式所有應用的重要部分之一,和IOS提供了許多技術來幫助你自定義設計和圖形展示在屏幕上。IOS的圖形技術提供了廣泛的支持,無縫的運行在UIKit界面裡,和容易的展現出來。你可以快速的高質量的展示標准的界面裡,或者你可以創建你的個性化界面和使用以下技術來展示一個豐富的圖形體驗界面。
IOS為運行的應用,不論是Retina顯示,還是標准分辨路顯示,都提供內置方法。對於矢量繪制,系統庫自動的使用了Retina屏幕像素顯示清晰的內容。如果你的應用中使用圖像,UIKit提供支持自動加載高分辨率的圖像。在App Programming Guide for iOS裡的App-Related Resources。
IOS音頻與底層硬件為用戶提供一個豐富的音頻體驗。這個體驗包含顯示和記錄高質量的音頻,控制MIDI內容和為設備播放內置的音效。
如果你想你的應用使用音頻,有許多技術提供給你使用,如以下
IOS支持許多工業標准和蘋果指定的音頻格式,包括
ACC 蘋果無損Apple Lossless(ALAC) A-law IMA/ADPCM (IMA4) Linear PCM μ-law DVI/Intel IMA ADPCM Microsoft GSM 6.10 AES3-2003IOS視頻技術支持管理靜態視頻內容,和回放網絡視頻流內容。具有記錄硬件的設備,你可以記錄視頻和合並在應用裡。
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接下來的章節介紹的是媒體層的庫和它們提供的服務
4.0 相片視頻 AssetsLibrary.framework
進入管理相片和視頻,使用這個庫可以保存相冊或者把相片保存在設備裡面,同也可以把新的照片和視頻保存到系統的相冊裡。(AL)
2.2 視頻模塊 _AVFoundation.framework
_
提供一些列OBJ-c的管理音頻和視頻的工具,如播放,記錄,管理等。這個庫具有無縫整合音像的能力,並且提供許多高級處理功能。例如,同時播放多個不同的聲音,控制多方面的回訪或記錄的過程。(AV)
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)
4.0 圖像IO ImageIO.framework
提供了接口導入和導出圖片數據,圖片元數據等。這個庫使用在核心圖像數據處理,方法,支持所有顯示在IOS的標准圖片格式。同時你可以使用Exif和IPTC這兩圖像格式。(CG)
7.0 字幕 MediaAccessibility.framework
在媒體文件下管理字幕展示內容。這個庫工作在整合新設置下,使得用戶可以顯示字幕。(MA)
2.0 媒體播放器 MediaPlayer.framework (Guide)
在應用裡,播放高質量的音頻和視頻內容。(MP)
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)