關(guān)于iOS掃描二維碼的功能實現(xiàn)有兩個常用的第三方庫:ZBar/ZXing,iOS7以后有一個AVFoundation框架,這個框架也可以實現(xiàn)二維碼的掃描。下面簡單介紹一下這三種方法是如何實現(xiàn)二維碼掃描的:
1. 先來介紹一下iOS7以后的用AVFoundation框架是如何此功能的:
AVFoundation是一個很大的基礎(chǔ)庫,用來創(chuàng)建基于時間的視聽媒體,可以用它來創(chuàng)建,檢查,編輯媒體文件也可以輸入流從設(shè)備和操作視頻實時捕捉和回放,詳細框架可以到官網(wǎng)去查看About AVFoundation。下面主要介紹如何運用AVFoundation來掃描二維碼;
首先獲取流媒體信息我們需要用AVCaptureSession這樣的一個對象來管理輸入流和輸出流,AVCaptureVideoPreviewsLayer對象來顯示信息?;玖鞒蹋?/p>
AVCaptureSession 管理輸入(AVCaptureInput)和輸出(AVCaptureOutput)流,包含開啟和停止會話方法。
AVCaptureDeviceInput 是AVCaptureInput的子類,可以作為輸入捕獲會話,用AVCaptureDevice實例初始化。
AVCaptureDevice 代表了物理捕獲設(shè)備如:攝像機。用于配置等底層硬件設(shè)置相機的自動對焦模式。
AVCaptureMetadataOutput 是AVCaptureOutput的子類,處理輸出捕獲會話。捕獲的對象傳遞給一個委托實現(xiàn)AVCaptureMetadataOutputObjectsDelegate協(xié)議。協(xié)議方法在指定的派發(fā)隊列(dispatch queue)上執(zhí)行。
AVCaptureVideoPreviewLayer CALayer的一個子類,顯示捕獲到的相機輸出流
[{具體代碼后期添加}]