1

を使用してキャプチャした画像から露光時間を取得しようとしていAVFoundationます。次のような有用な画像メタデータの取得に関する2010年のWWDC指示に従ったときCMSampleBuffer

-(void)captureStillImageWithCompletion:(completion_exp)completionHandler
{
AVCaptureConnection *connection = [stillImage connectionWithMediaType:AVMediaTypeVideo];

typedef void(^MyBufBlock)(CMSampleBufferRef, NSError*);

MyBufBlock h = ^(CMSampleBufferRef buf, NSError *err){
    CFDictionaryRef exifAttachments = CMGetAttachment(buf, kCGImagePropertyExifDictionary, NULL);
    if(exifAttachments){
        NSLog(@"%@",exifAttachments);
    }

    if(completionHandler){
        completionHandler();
    }
};

[stillImage captureStillImageAsynchronouslyFromConnection:connection completionHandler:h];
}

CFDictionaryRef次の行でエラーが発生しました。

Cannot initialize a variable of type'CFDictionaryRef (aka 'const __CFDictionary*') with an rvalue of type CFTypeRef..

そこで、次のようにキャストして、インターネットのソリューションに従いました。

CFDictionaryRef exifAttachments = (CFDictionaryRef)CMGetAttachment(buf, kCGImagePropertyExifDictionary, NULL);

そして今、別のエラーが表示されます: アーキテクチャ armv7s の未定義シンボル

(Apple Mach-o Linker Error: "_kCGImagePropertyExifDictionary", referenced from:)
(Apple Mach-o Linker Error: "_CMGetAttachment", referenced from:)

プログラムで何が問題になったのかわかりません。誰にもアイデアはありますか?

4

3 に答える 3