我正在使用以下 AVCaptureVideoDataOutputSampleBufferDelegate 方法从视频输出中实时获取亮度值、曝光和其他元数据位。但是,元数据字典返回 NULL。我从 WWDC 10 中获取了代码片段,所以从那时起可能发生了一些变化。
- (void) captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
CFDictionaryRef metaDict = CMGetAttachment(sampleBuffer, CFSTR ("MetadataDictionary"), NULL);
if (metaDict) {
CFShow(metaDict);
}
}
我还注意到有人问了一个类似的问题,答案是使用:
NSDictionary *exifDictionary = (NSDictionary*)CMGetAttachment(sampleBuffer, kCGImagePropertyExifDictionary, NULL);
但编译器无法识别 kCGImagePropertyExifDictionary。它正在为该参数寻找 CFStringRef。