CameraEngine 是一个iOS相机引擎库,允许您轻松地集成特殊捕获功能和自定义摄像头功能到您的iOS应用程序中。
CameraEngine | |
---|---|
支持 iOS8 - iOS9 | |
支持设备方向 | |
快速捕获 | |
照片捕获 | |
视频捕获 | |
视频/照片捕获质量设置 | |
切换设备(前置、后置) | |
闪光灯模式管理 | |
手电筒模式管理 | |
焦点模式管理 | |
![]() | 检测人脸、二维码和条形码 |
GIF 编码器 |
首先让我们初始化并开始相机会话。您可以在 viewDidLoad 中或在 appDelegate 中调用该函数。
override func viewDidLoad() {
super.viewDidLoad()
self.cameraEngine.startSession()
}
显示预览层
override func viewDidLayoutSubviews() {
let layer = self.cameraEngine.previewLayer
layer.frame = self.view.bounds
self.view.layer.insertSublayer(layer, atIndex: 0)
self.view.layer.masksToBounds = true
}
捕获照片
self.cameraEngine.capturePhoto { (image: UIImage?, error: NSError?) -> (Void) in
//get the picture tooked in the 👉 image
}
捕获视频
private func startRecording() {
guard let url = CameraEngineFileManager.documentPath("video.mp4") else {
return
}
self.cameraEngine.startRecordingVideo(url, blockCompletion: { (url, error) -> (Void) in
})
}
private func stopRecording() {
self.cameraEngine.stopRecordingVideo()
}
生成动画图像 GIF
guard let url = CameraEngineFileManager.documentPath("animated.gif") else {
return
}
self.cameraEngine.createGif(url, frames: self.frames, delayTime: 0.1, completionGif: { (success, url) -> (Void) in
//Do some crazy stuff here
})
CameraEngine 允许您设置一些参数,例如 闪光灯、手电筒 和 焦点 的管理。同时也影响输出文件大小的媒体质量。
闪光灯
self.cameraEngine.flashMode = .On
self.cameraEngine.flashMode = .Off
self.cameraEngine.flashMode = .Auto
手电筒
self.cameraEngine.torchMode = .On
self.cameraEngine.torchMode = .Off
self.cameraEngine.torchMode = .Auto
焦点
CameraEngine 焦点 | |
---|---|
.Locked | 表示镜头位于固定位置 |
.AutoFocus | 表示设定此选项将使相机自动对焦一次,然后返回到 Locked |
.ContinuousAutoFocus | 表示当场景变化时,相机将自动聚焦于画面的中心 |
self.cameraEngine.cameraFocus = .Locked
self.cameraEngine.cameraFocus = .AutoFocus
self.cameraEngine.cameraFocus = .ContinuousAutoFocus
相机预设照片
self.cameraEngine.sessionPresset = .Low
self.cameraEngine.sessionPresset = .Medium
self.cameraEngine.sessionPresset = .High
...
相机预设视频
self.cameraEngine.videoEncoderPresset = .Preset640x480
self.cameraEngine.videoEncoderPresset = .Preset960x540
self.cameraEngine.videoEncoderPresset = .Preset1280x720
self.cameraEngine.videoEncoderPresset = .Preset1920x1080
self.cameraEngine.videoEncoderPresset = .Preset3840x2160
CameraEngine可检测人脸、二维码或条形码。当它检测到某个内容时,将返回每一帧的全部元数据,以便您随时使用。
设置检测模式
self.cameraEngine.metadataDetection = .Face
self.cameraEngine.metadataDetection = .QRCode
self.cameraEngine.metadataDetection = .BareCode
self.cameraEngine.metadataDetection = .None //disable the detection
利用人脸检测
self.cameraEngine.blockCompletionFaceDetection = { faceObject in
let frameFace = (faceObject as AVMetadataObject).bounds
self.displayLayerDetection(frame: frameFace)
}
利用代码检测(条形码和二维码)
self.cameraEngine.blockCompletionCodeDetection = { codeObject in
let valueCode = codeObject.stringValue
let frameCode = (codeObject as AVMetadataObject).bounds
self.displayLayerDetection(frame: frameCode)
}
您将找到一个示例项目,该项目实现了CameraEngine的所有功能,并提供了一个界面,您可以在其中测试和调整设置。要运行示例项目,请运行pod install
,因为该项目使用的是CameraEngine的当前生产版本。
该项目根据MIT许可证的条款进行许可。请参阅LICENSE文件。
该项目与苹果公司无关。该项目根据MIT许可证开源,这意味着您有权完全访问源代码,并根据您的需求对其进行修改。