![](/img/trans.png)
[英]How to get a UIImage from CMSampleBuffer using AVCaptureSession
[英]Get CMSampleBuffer of corresponding AVMetadataObject?
我正在运行一个成功返回的会话
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) {...}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.