Shakuro.VideoCamera 1.0.2

Shakuro.VideoCamera 1.0.2

iOSDevs维护。



  • apopov1988和wwwpix

Shakuro VideoCamera

VideoCamera

Version Platform License MIT

AVFoundation摄像头的封装。与多个数据输出兼容,例如元数据、视频数据、静态图像捕获。

要求

  • iOS 11.0+
  • Xcode 11.0+
  • Swift 5.0+

安装

CocoaPods

使用 CocoaPods 将 VideoCamera 集成到您的 Xcode 项目中,只需在您的 Podfile 中指定它

pod 'Shakuro.VideoCamera'

然后,运行以下命令

$ pod install

手动

如果您不希望使用 CocoaPods,只需将 Shakuro.VideoCamera 拷贝到您的项目中即可简单地集成它。

用例

每个 VideoCamera 必须提供 VideoCameraConfiguration 结构。浏览其广泛的设置。对于简单的后置摄像头设置,仅提供视频数据预览,无权获取静态图像

private var camera: VideoCamera?

override func viewDidLoad() {
    super.viewDidLoad()
    
    // ...
    
    var cameraConfig = VideoCameraConfiguration()
    cameraConfig.cameraDelegate = self
    cameraConfig.captureSessionPreset = .high
    cameraConfig.capturePhotoEnabled = false
    cameraConfig.videoFeedDelegate = self
    cameraConfig.simulatedImage = UIImage(named: "card_backside.png")?.cgImage
    let videoCamera = VideoCameraFactory.createCamera(configuration: cameraConfig)
    camera = videoCamera
    
    // ...
}

显示摄像头预览的一种简单方法是,在 storyboard 中准备容器视图,然后将其添加到摄像头预览中

@IBOutlet private var cameraPreviewContainerView: UIView!

override func viewDidLoad() {
    super.viewDidLoad()
    
    // setup camera (see above)

    let preview = videoCamera.previewView
    preview.translatesAutoresizingMaskIntoConstraints = true
    preview.autoresizingMask = [UIViewAutoresizing.flexibleHeight, UIViewAutoresizing.flexibleWidth]
    preview.frame = cameraPreviewContainerView.bounds
    cameraPreviewContainerView.insertSubview(preview, at: 0)
    
    // ...
}

通过代理观察摄像头属性的更改

extension MyViewController: VideoCameraDelegate {

    func videoCamera(_ videoCamera: VideoCamera, error: Error) {
        // display/process error
    }

    func videoCameraInitialized(_ videoCamera: VideoCamera, errors: [VideoCameraError]) {
        // update UI - such as flash button (with actual state of camera)
    }

    func videoCamera(_ videoCamera: VideoCamera, flashModeForPhotoDidChanged newValue: AVCaptureDevice.FlashMode) {
        // update flash button
    }
    
    // ... other delegate functions
    
}

请参阅 VideoCamera_Example

许可

Shakuro.VideoCamera 根据 MIT 许可发布。有关详细信息,请参阅 LICENSE

试一试并联系我们

如果你喜欢这个工具,请给它标星,这将帮助我们成长并添加更多有用的功能。随时联系我们并雇佣我们的团队为你开发移动或网页项目。