一个旨在为与 iOS 相机交互提供简化 API 的软件包,具有以下功能
该 API 可以在 Camera 接口中找到。
前往 File > Swift Packages > Add Package Dependency 并添加以下 URL
https://github.com/samst-one/CameraCapture
import CameraCapture
Camera 对象。Camera 对象充当该软件包的 API。要创建 Camera 对象,我们这样做let camera = CameraFactory.make()
camera 对象,我们现在可以访问 API。有关 API 的更详细分解,请查看 Camera。要获取可用于拍照的可用设备列表,请调用camera.availableDevices
Device 中的 id 设置相机。如果在当前设备上找不到相机,则会抛出 CameraSourcingError.invalidCamera 错误。do {
try camera.set(camera!.id)
} catch let error {
print(error)
}
UIViewRepresentable 中。let previewView = camera.previewView
view.addSubview(previewView)
previewView 中显示预览。camera.start {
// Do stuff here
}
Camera 对象上调用 takePhoto。如果成功,将返回图像的 Data 表示形式。如果发生错误,则将返回 PhotoCaptureError 错误。camera.takePhoto(with: CameraSettings(fileType: .jpeg)) { result in
switch result {
case .success(let data):
let image = UIImage(data: data)
break
case .failure(let error):
break
}
}
总之,要启动相机并拍照,完整的代码如下
let camera = CameraFactory.make()
let selectedDevice = camera.availableDevices.randomElement()
let view = camera.previewView
do {
try camera.set(camera!.id)
} catch let error {
print(error)
}
view.addSubview(view)
camera.start {
camera.takePhoto(with: CameraSettings(fileType: .jpeg)) { result in
switch result {
case .success(let data):
let image = UIImage(data: data)
break
case .failure(let error):
break
}
}
}