获取对应AVMetadataObject的CMSampleBuffer?
Get CMSampleBuffer of corresponding AVMetadataObject?
我是运行一个成功的会话return
AVMetadataObjects
在
AVCaptureMetadataOutputObjectsDelegate
我的问题是如何获取AVMetadataObject的对应图片?
TL:DR; https://developer.apple.com/documentation/avfoundation/avcapturedataoutputsynchronizer
您将要实现一个 AVCaptureDataOutputSynchronizerDelegate。它非常简单,您只需将两个输入(视频和元数据)添加到您的 AVCaptureDataOutputSynchronizer,然后您将获得一个 AVCaptureSynchronizedDataCollection,其中包含来自同一时间戳的一个或多个 sampleBuffers。这样,当您使用元数据输出 sampleBuffer 时,您只需从 AVCaptureSynchronizedDataCollection 中获取相应的图像 sampleBuffer。
有一些代码,但首当其冲的是获取当前在
中的代码
open func captureOutput(_ captureOutput: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) { ... }
并将其移至新委托
public func dataOutputSynchronizer(_ synchronizer: AVCaptureDataOutputSynchronizer, didOutput synchronizedDataCollection: AVCaptureSynchronizedDataCollection) {...}
我是运行一个成功的会话return
AVMetadataObjects
在
AVCaptureMetadataOutputObjectsDelegate
我的问题是如何获取AVMetadataObject的对应图片?
TL:DR; https://developer.apple.com/documentation/avfoundation/avcapturedataoutputsynchronizer
您将要实现一个 AVCaptureDataOutputSynchronizerDelegate。它非常简单,您只需将两个输入(视频和元数据)添加到您的 AVCaptureDataOutputSynchronizer,然后您将获得一个 AVCaptureSynchronizedDataCollection,其中包含来自同一时间戳的一个或多个 sampleBuffers。这样,当您使用元数据输出 sampleBuffer 时,您只需从 AVCaptureSynchronizedDataCollection 中获取相应的图像 sampleBuffer。
有一些代码,但首当其冲的是获取当前在
中的代码
open func captureOutput(_ captureOutput: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) { ... }
并将其移至新委托
public func dataOutputSynchronizer(_ synchronizer: AVCaptureDataOutputSynchronizer, didOutput synchronizedDataCollection: AVCaptureSynchronizedDataCollection) {...}