CaptureCenter 0.1.4

CaptureCenter 0.1.4

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2017年8月
SwiftSwift 版本3.0
SPM支持 SPM

mingloan 维护。



CaptureCenter(beta)

介绍

CaptureCenter 不是一个自定义摄像捕获 UI 库。它提供了一个简单的接口层来连接 AVFoundation 的功能。CaptureCenter 提供了聚焦、调整曝光、应用闪光灯等 AVCaptureDevice 设置的接口。此外,CaptureCenter 在幕后处理照片捕获和视频录制流程。开发者可以使用自己的 UI 组件或图标构建自己的相机 UI,并将 UI 动作与 CaptureCenter 提供的接口映射。

示例

要运行示例项目,请克隆仓库,然后首先从 Example 目录中运行 pod install

要求

Capture Center 支持 iOS 9.0 或更高版本

安装

CaptureCenter 通过 CocoaPods 可用。要安装它,只需将以下行添加到您的 Podfile 中

pod "CaptureCenter"

或者通过 Carthage

在 Cartfile 中

github "MingLoan/CaptureCenter"

然后运行

carthage update --platform iOS

用法

实例化

let captureCenter = CaptureCenter(captureMode: .photo)

目前仅支持 照片 捕获模式,其他模式将很快支持。

public enum CaptureMode {
    case photo
    // unsupport now
    case video(size: VideoSize, location: URL, didStart: () -> (), progress: (CGFloat) -> (), willFinish: () -> (), completion: (AVAsset?) -> ())
    // unsupport now
    case stream
}

您可以从 CaptureCenter 实例中获取相机预览视图,并将其用作 UIView。

captureCenter.previewView.frame = CGRect(...)
view.addSubview(captureCenter.previewView)

要开始捕获,调用 startCapturingWithDevicePosition,您可以设置设备位置。启用 cameraControlShouldOn 可以启用相机控制,例如轻触对焦、捏合缩放,默认为 false。捕获开始后将调用回调。

  captureCenter.startCapturingWithDevicePosition(
                .back,
                fromVC: self,
                cameraControlShouldOn: true) { [weak self] finished in
                    guard let strongSelf = self else { return }
                    if finished {
                        // ...
                    }
                }

要停止捕获,

    captureCenter.stopCapturing()

拍摄照片

public func captureWithOptions(_ options: ImageOptions, completion: @escaping ((Data?) -> ()))

切换相机

public func changeCameraWithStartBlock(_ startBlock: (() -> ()), finished endBlock: @escaping ((Bool) -> ()))

配置对焦

public func focusWithMode(_ focusMode: AVCaptureFocusMode, exposureMode: AVCaptureExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool, showUI: @escaping ((Bool) -> ()))

配置曝光

public func exposeWithBias(_ exposureBias: CGFloat)

配置缩放

public func setZoomScale(_ scale: CGFloat)

规划

  • 支持视频录制
  • 支持流媒体
  • 支持RAW获取
  • 改进文档
  • 改进错误处理

作者

mingloan, [email protected]

许可证

CaptureCenter可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。