AV Foundation之視頻捕捉(2)__創建預覽視圖

喜歡就抬抬小手,關注一下CC老師!

前言

在講述AV Foundation框架之媒體捕捉。我將用一個小案例來開始整個知識點的引導以及疏通。我就不一一贅述相關的UI實現了。關于UI搭建部分,同學們可以在本篇文章末尾拿到百度網盤分享。你就可以在這個基礎上進行編碼了。

2.1.1 創建預覽視圖

圖2-1是項目的用戶界面的組成圖示。我們把重點放在中間層THPreview View的實現上。因為它直接包含了AV Foundation 的用戶界面。


圖 2-1

圖2-1所示的THPreview View 類提供給用戶用i 個攝像頭當前拍攝內容的實時預覽圖。我們將使用AVCaptureVideoPreviewLayer方法實現這個行為。首先我們通過認識THPreview View 的接口開始了解如何實現。

代碼清單2-1 ?THPreviewView 接口

圖2-2

代碼清單2-2? THPreviewView 實現

2.1.2 坐標空間轉換

當使用AV Foundation 的捕捉API時,一定要理解屏幕坐標系和捕捉設備坐標系不同。iOS6.0之前的版本,要在這2個坐標空間進行轉換非常困難。要精確的將屏幕坐標點轉換為攝像頭坐標點。開發者必須考慮諸如視頻重力、鏡像、圖層變換和方向等因素進行綜合計算。幸運的是,AVCaptureVideoPreviewLayer現在定義了一個轉換方法讓這一過程變得簡單多了。

AVCaptureVideoPreviewLayer定義了2個方法用于坐標系間進行轉換:

captureDevicePointOfInterestForPoint:獲取屏幕坐標系的CGPoint 數據,返回轉換得到的設備坐標系CGPoint數據。

pointForCaptureDevicePointOfInterest:獲取攝像頭坐標系的CGPoint數據,返回轉換得到的屏幕坐標系CGPoint 數據。

THPreview ?View 使用captureDevicePointOfInterestForPoint:方法將用戶觸點信息轉換為攝像頭設備坐標系的中的點。在項目中點擊對焦和點擊曝光功能實現會用到這個轉換坐標點。

學習這篇文章重點,要弄明白預覽視圖的創建 和 坐標空間轉換的方法。

鏈接:此鏈接下的項目已經搭建好UI。同學們,可以在這個基礎上進行編碼;

鏈接:http://pan.baidu.com/s/1c1A1NDA? 密碼:ca7o

小伙伴們閱讀后,請喜歡一下。文章更新可以提醒到你哦~~~~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容