iOSRawCamera 1.0.32

iOSRawCamera 1.0.32

Nomad-Labs维护。



安装

如果您没有在您的机器上安装CocoaPods

sudo gem install cocoapods

一旦您安装了CocoaPods并且cd到您的项目目录下。如果您没有初始化CocoaPods,您可以像这样初始化:

pod init

现在,打开生成的Podfile并添加该项目

pod 'iOSRawCamera'

最后,安装或更新依赖项。

pod install

现在使用工作空间文件打开XCode。

基础用法

检查相机授权如下

let authorizationController = CameraAuthorizationController()

guard authorizationController.isCameraAuthorized() == true else {
    return
}

请求相机授权如下

let cameraAuthorizationController = CameraAuthorizationController()
cameraAuthorizationController.requestCameraPermission { (didAuthorize) in
    switch didAuthorize {
    case true:
        break
    case false:
        break
    }
}

一旦授权,您可以同步或异步设置相机

同步

let cameraController: CameraController = CameraController()
do{
    try cameraController.setUp()
}catch{

}

异步

let cameraController: CameraController = CameraController()
let asyncController = CameraAsyncController()
asyncController.setUpAsync(cameraController: cameraController, finished: { (p_error) in
    if let error = p_error {
        callback?(error)
    }else {
        callback?(nil)
    }
})

一旦设置好相机,您可以像这样启动它

cameraController.startRunning()

然后,所有想获取CVPixelBuffer的对象都可以监听以下通知

NotificationCenter.default.addObserver(self, selector: #selector(self.newBuffer(_:)), name: NewCameraBufferNotification, object: nil)
@objc func newBuffer(_ notification: Notification) {
    let buffer = notification.object as! CVPixelBuffer
    let w = Int32(CVPixelBufferGetWidth(buffer))
    let h = Int32(CVPixelBufferGetHeight(buffer))
    let opaque = UnsafeMutableRawPointer(Unmanaged.passRetained(buffer).toOpaque())
    CVPixelBufferLockBaseAddress(buffer, .readOnly)
    //Do inference.
    CVPixelBufferUnlockBaseAddress(buffer, .readOnly)
}