2

オーディオデータをキャプチャするために使用しようとしているこのコードがあります。しかし、コンパイラは不平を言っていますCMSampleBufferGetAudioBufferListWithRetainedBlockBuffer

    -(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
        AudioBufferList audioBufferList;
        NSMutableData *data= [[NSMutableData alloc] init];
        CMBlockBufferRef blockBuffer;
        CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(sampleBuffer, NULL, &audioBufferList, sizeof(audioBufferList), NULL, NULL, 0, &blockBuffer);

        for (int y = 0; y < audioBufferList.mNumberBuffers; y++) {
            AudioBuffer audioBuffer = audioBufferList.mBuffers[y];
            Float32 *frame = (Float32*)audioBuffer.mData;

            [data appendBytes:frame length:audioBuffer.mDataByteSize];
        }
    CFRelease(blockBuffer);
    blockBuffer=NULL;
    [data release];
}

エラー:

アーキテクチャarmv7の未定義のシンボル:
"_ CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer"、参照元:-[MicCommunicator CaptureOutput:didOutputSampleBuffer:fromConnection:] in MicCommunicator.o ld:シンボルがアーキテクチャarmv7 clangに見つかりません:エラー:リンカーコマンドが終了コード1で失敗しました( -vを使用して呼び出しを確認します)

4

1 に答える 1

5

リンカがシンボルを見つけられない場合は、そのシンボルを含むライブラリ/フレームワークがビルドターゲットの依存関係としてリストされていないことを示しています。Xcodeで、ターゲットを選択し、[Build Phases]に移動し、[Link Binary with Libraries]を開いて、CoreMediaを追加します。

于 2012-05-22T20:04:41.557 に答える