在 macOS 上将数据传递给 AVCapturePhoto
Passing data to AVCapturePhoto on macOS
通常,如果你想使用 AVCapturePhoto,你会这样做:
func capturePhoto() {
let photoSettings = AVCapturePhotoSettings()
photoOutput?.capturePhoto(with: photoSettings, delegate: self)
}
然后在处理照片时,调用photoOutput
方法:
internal func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
}
问题:
是否可以通过 .capturePhoto
将自定义数据传递给 photoOutput? .metadata
只能在 iOS 上访问,每次我使用 .value()
方法设置一个值时,我都会得到
[General] [<AVCapturePhotoSettings 0x600003882080> valueWithUniqueID:inPropertyWithKey:]: lookup of unknown key: 'key'.
我认为最好和最简单的方法是使用其他一些对象作为照片捕获的 delegate
并且始终为每个捕获操作创建一个新的委托实例。通过这种方式,您可以将其他数据传递给 init
上的委托对象,您可以在 photoOutput(_:didFinishProcessingPhoto:)
方法中使用这些数据。
我强烈建议您查看 Apple 的 AVCam sample project。他们就是这么做的。
通常,如果你想使用 AVCapturePhoto,你会这样做:
func capturePhoto() {
let photoSettings = AVCapturePhotoSettings()
photoOutput?.capturePhoto(with: photoSettings, delegate: self)
}
然后在处理照片时,调用photoOutput
方法:
internal func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
}
问题:
是否可以通过 .capturePhoto
将自定义数据传递给 photoOutput? .metadata
只能在 iOS 上访问,每次我使用 .value()
方法设置一个值时,我都会得到
[General] [<AVCapturePhotoSettings 0x600003882080> valueWithUniqueID:inPropertyWithKey:]: lookup of unknown key: 'key'.
我认为最好和最简单的方法是使用其他一些对象作为照片捕获的 delegate
并且始终为每个捕获操作创建一个新的委托实例。通过这种方式,您可以将其他数据传递给 init
上的委托对象,您可以在 photoOutput(_:didFinishProcessingPhoto:)
方法中使用这些数据。
我强烈建议您查看 Apple 的 AVCam sample project。他们就是这么做的。