安装
如果您没有在您的机器上安装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)
}