喜歡就抬抬小手傅联,關(guān)注一下CC老師疚察!
前言
在講述AV Foundation框架之媒體捕捉貌嫡。我將用一個(gè)小案例來(lái)開(kāi)始整個(gè)知識(shí)點(diǎn)的引導(dǎo)以及疏通。我就不一一贅述相關(guān)的UI實(shí)現(xiàn)了。關(guān)于UI搭建部分掸掸,同學(xué)們可以在本篇文章末尾拿到百度網(wǎng)盤(pán)分享堤撵。你就可以在這個(gè)基礎(chǔ)上進(jìn)行編碼了。
2.1.1 創(chuàng)建預(yù)覽視圖
圖2-1是項(xiàng)目的用戶界面的組成圖示盐固。我們把重點(diǎn)放在中間層THPreview View的實(shí)現(xiàn)上闰挡。因?yàn)樗苯影薃V Foundation 的用戶界面溪北。
圖2-1所示的THPreview View 類(lèi)提供給用戶用i 個(gè)攝像頭當(dāng)前拍攝內(nèi)容的實(shí)時(shí)預(yù)覽圖夺脾。我們將使用AVCaptureVideoPreviewLayer方法實(shí)現(xiàn)這個(gè)行為之拨。首先我們通過(guò)認(rèn)識(shí)THPreview View 的接口開(kāi)始了解如何實(shí)現(xiàn)。
代碼清單2-1 ?THPreviewView 接口
代碼清單2-2? THPreviewView 實(shí)現(xiàn)
2.1.2 坐標(biāo)空間轉(zhuǎn)換
當(dāng)使用AV Foundation 的捕捉API時(shí)咧叭,一定要理解屏幕坐標(biāo)系和捕捉設(shè)備坐標(biāo)系不同蚀乔。iOS6.0之前的版本,要在這2個(gè)坐標(biāo)空間進(jìn)行轉(zhuǎn)換非常困難菲茬。要精確的將屏幕坐標(biāo)點(diǎn)轉(zhuǎn)換為攝像頭坐標(biāo)點(diǎn)吉挣。開(kāi)發(fā)者必須考慮諸如視頻重力、鏡像婉弹、圖層變換和方向等因素進(jìn)行綜合計(jì)算睬魂。幸運(yùn)的是,AVCaptureVideoPreviewLayer現(xiàn)在定義了一個(gè)轉(zhuǎn)換方法讓這一過(guò)程變得簡(jiǎn)單多了镀赌。
AVCaptureVideoPreviewLayer定義了2個(gè)方法用于坐標(biāo)系間進(jìn)行轉(zhuǎn)換:
captureDevicePointOfInterestForPoint:獲取屏幕坐標(biāo)系的CGPoint 數(shù)據(jù)氯哮,返回轉(zhuǎn)換得到的設(shè)備坐標(biāo)系CGPoint數(shù)據(jù)。
pointForCaptureDevicePointOfInterest:獲取攝像頭坐標(biāo)系的CGPoint數(shù)據(jù)商佛,返回轉(zhuǎn)換得到的屏幕坐標(biāo)系CGPoint 數(shù)據(jù)喉钢。
THPreview ?View 使用captureDevicePointOfInterestForPoint:方法將用戶觸點(diǎn)信息轉(zhuǎn)換為攝像頭設(shè)備坐標(biāo)系的中的點(diǎn)姆打。在項(xiàng)目中點(diǎn)擊對(duì)焦和點(diǎn)擊曝光功能實(shí)現(xiàn)會(huì)用到這個(gè)轉(zhuǎn)換坐標(biāo)點(diǎn)。
學(xué)習(xí)這篇文章重點(diǎn)肠虽,要弄明白預(yù)覽視圖的創(chuàng)建 和 坐標(biāo)空間轉(zhuǎn)換的方法幔戏。
鏈接:此鏈接下的項(xiàng)目已經(jīng)搭建好UI。同學(xué)們税课,可以在這個(gè)基礎(chǔ)上進(jìn)行編碼评抚;
鏈接:http://pan.baidu.com/s/1c1A1NDA? 密碼:ca7o
小伙伴們閱讀后,請(qǐng)喜歡一下伯复。文章更新可以提醒到你哦~~~~