swift3.0自定義相機介面
阿新 • • 發佈:2018-12-08
這是公司上上上一個專案的自定義相機介面,原來是swift2.0寫的,今天改為swift3.0,記錄一下.
效果圖如下:
使用AVFoundation製作.
屬性:
1 var device:AVCaptureDevice! //獲取裝置:如攝像頭 2 var input:AVCaptureDeviceInput! //輸入流 3 var photoOutput:AVCaptureStillImageOutput! //輸出流 4 var output:AVCaptureMetadataOutput! //當啟動攝像頭開始捕獲輸入 5 var session:AVCaptureSession!//會話,協調著intput到output的資料傳輸,input和output的橋樑 6 var previewLayer:AVCaptureVideoPreviewLayer! //影象預覽層,實時顯示捕獲的影象 7 8 var photoButton: UIButton? //拍照按鈕 9 var imageView: UIImageView? //拍照後的成像 10 var image: UIImage? //拍照後的成像 11 var isJurisdiction: Bool? //是否獲取了拍照標示 12 var flashBtn:UIButton? //閃光燈按鈕
在viewDidLoad裡面判斷下許可權,沒給許可權給個提示
isJurisdiction = canUserCamear() if isJurisdiction! { customCamera() //自定義相機 customUI() //自定義相機按鈕 } else { return }
// MARK: - 檢查相機許可權 func canUserCamear() -> Bool { let authStatus: AVAuthorizationStatus = AVCaptureDevice.authorizationStatus(forMediaType: AVMediaTypeVideo) if authStatus == .denied { let alertView = UIAlertView(title: "請開啟相機許可權", message: "設定-隱私-相機", delegate: self, cancelButtonTitle: "確定", otherButtonTitles: "取消") alertView.tag = 100 alertView.show() return false } else { return true } return true }
自定義相機:
View Code
自定義相機介面按鈕:拍照,取消,閃光燈,前後拍照切換按鈕
View Code
拍照按鈕點選事件:
View Code
閃光燈切換事件:
View Code
取消按鈕點選事件:
//MARK:取消按鈕 func cancelActin(){ self.imageView?.removeFromSuperview() self.session.startRunning() }
github原始碼地址:https://github.com/pheromone/swift_custom_camera