在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
这是公司上上上一个项目的自定义相机界面,原来是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
|
请发表评论