CMSampleBufferGetImageBuffer CVImageBufferGetEncodedSize产生问题

Lud*_*uda 3 objective-c linker-errors core-media

这是我的代码:

-(void) captureOutput:(AVCaptureOutput*)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection*)connection
{
    CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer( sampleBuffer );
    CGSize imageSize = CVImageBufferGetEncodedSize( imageBuffer );
    // also in the 'mediaSpecific' dict of the sampleBuffer

    NSLog( @"frame captured at %.fx%.f", imageSize.width, imageSize.height );
}
Run Code Online (Sandbox Code Playgroud)

(这与问题无关,但这是一个功能AVCaptureVideoDataOutputSampleBufferDelegate)

无论如何,问题是CMSampleBufferGetImageBuffer CVImageBufferGetEncodedSize无法识别.我收到了错误:

Undefined symbols for architecture i386:
  "_CMSampleBufferGetImageBuffer", referenced from:
Run Code Online (Sandbox Code Playgroud)

这是一个标准错误:架构armv7的未定义符号 但是解决方案对我不起作用: - 我正确地将框架添加到Link Binary With Libraries.- 我导入了<CoreMedia/CMSampleBuffer.h>,其中包含.h中的这些类.

那么问题是什么?

Jas*_*son 18

您需要添加CoreMedia.framework.转到您的目标 - >构建阶段 - >使用库链接二进制并添加它.