3

これは私のコードです:

-(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 );
}

(質問にはあまり関係ありませんが、これはの関数ですAVCaptureVideoDataOutputSampleBufferDelegate

とにかく、問題はそれCMSampleBufferGetImageBuffer CVImageBufferGetEncodedSizeが認識されていないことです。エラーが発生しました:

Undefined symbols for architecture i386:
  "_CMSampleBufferGetImageBuffer", referenced from:

これは標準エラーです:アーキテクチャ armv7 の未定義シンボル しかし、解決策がうまくいきません: - フレームワークをライブラリとバイナリを正しくリンクするように追加しました。<CoreMedia/CMSampleBuffer.h>-このクラスを .h に含むをインポートしました。

それで、問題は何ですか?

4

1 に答える 1

18

CoreMedia.framework を追加する必要があります。ターゲットに移動 -> Build Phases -> Link Binary With Libraries して追加します。

于 2013-11-22T17:22:24.660 に答える