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 回答