一个旨在为与 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
}
}
}