初識AVFoundation框架1

一.基本概念

感謝http://www.itdecent.cn/p/f7146092e640等博主的技術(shù)分享。

AVCaptureSession:媒體(音、視頻)捕獲會話,負(fù)責(zé)把捕獲的音視頻數(shù)據(jù)輸出到輸出設(shè)備中。一個AVCaptureSession可以有多個輸入輸出。它用于協(xié)調(diào)輸入與輸出之間的數(shù)據(jù)流。

AVCaptureDevice:輸入設(shè)備,包括麥克風(fēng)、攝像頭,通過該對象可以設(shè)置物理設(shè)備的一些屬性(例如相機(jī)聚焦、白平衡等),也就是物理輸入設(shè)備,例如攝像頭與麥克風(fēng)。

AVCaptureDeviceInput:設(shè)備輸入數(shù)據(jù)管理對象,可以根據(jù)AVCaptureDevice創(chuàng)建對應(yīng)的AVCaptureDeviceInput對象,該對象將會被添加到AVCaptureSession中管理。代表了AVCaptureDevice采集的輸入數(shù)據(jù)源。

AVCaptureOutput:輸出數(shù)據(jù)管理對象,用于接收各類輸出數(shù)據(jù),通常使用對應(yīng)的子類,其代表了輸出數(shù)據(jù)源。

AVCaptureAudioDataOutput、

AVCaptureStillImageOutput、

AVCaptureVideoDataOutput、

AVCaptureFileOutput,

該對象將會被添加到AVCaptureSession中管理。注意:前面幾個對象的輸出數(shù)據(jù)都是NSData類型,而AVCaptureFileOutput代表數(shù)據(jù)以文件形式輸出,類似的,AVCcaptureFileOutput也不會直接創(chuàng)建使用,通常會使用其子類:AVCaptureAudioFileOutput、

AVCaptureMovieFileOutput。

AVCaptureVideoPreviewLayer:相機(jī)拍攝預(yù)覽圖層,是CALayer的子類,使用該對象可以實(shí)時查看拍照或視頻錄制效果,創(chuàng)建該對象需要指定對應(yīng)的AVCaptureSession對象

使用AVFoundation拍照和錄制視頻的一般步驟:

(1)創(chuàng)建AVCaptureSession對象。

(2)使用AVCaptureDevice的靜態(tài)方法獲得需要使用的設(shè)備,例如拍照和錄像就需要獲得攝像頭設(shè)備,錄音就要獲得麥克風(fēng)設(shè)備。

(3)利用輸入設(shè)備AVCaptureDevice初始化AVCaptureDeviceInput對象。

(4)初始化輸出數(shù)據(jù)管理對象,如果要拍照就初始化AVCaptureStillImageOutput對象;如果拍攝視頻就初始化AVCaptureMovieFileOutput對象。

(5)將數(shù)據(jù)輸入對象AVCaptureDeviceInput、數(shù)據(jù)輸出對象AVCaptureOutput添加到媒體會話管理對象AVCaptureSession中。

(6)創(chuàng)建視頻預(yù)覽圖層AVCaptureVideoPreviewLayer并指定媒體會話,添加圖層到 顯示容器中,調(diào)用AVCaptureSession的startRuning方法開始捕獲。

(7)將捕獲的音頻或視頻數(shù)據(jù)輸出到指定文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容