类型“ CMSampleBuffer”的值没有成员“ imageBuffer”

时间:2018-07-06 16:39:04

标签: ios swift camera xcode10 cmsamplebuffer

我目前正在一个使用Swift实时摄影机视图的项目中。我使用在GitHub上找到的一些代码为我提供了实时摄像机视图,它在运行Mojave的MacBook Pro上非常有效。我的所有文件都存储在外部HDD上,所以我去了iMac并开始在该项目上工作。我想我有两个不同版本的Xcode 10 beta,这可能是问题的一部分吗?基本上,此行在我的MacBook上工作正常,但在运行MacOS High Sierra 15版的iMac上却无法运行:

guard let pixelBuffer : CVPixelBuffer = sampleBuffer.imageBuffer else { return }

它给我以下错误:

Value of type 'CMSampleBuffer' has no member 'imageBuffer'

但是,当在我的Macbook上打开完全相同的项目时,这毫无问题。这可能是Xcode版本吗,还是因为我正在运行两个不同的macOS版本?

2 个答案:

答案 0 :(得分:9)

您仍然可以使用此功能:

CMSampleBufferGetImageBuffer(_ sbuf: CMSampleBuffer)获得CVPixelBuffer?

直接替换为:

guard let pixelBuffer: CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else { return }

答案 1 :(得分:0)

我在一个MacBook上工作但在另一个MacBook上工作的代码库遇到相同的问题。可以使用的MacBook可以与Apple一起维修,因此尽管我确实知道我的可用代码使用CMSampleBufferGetImageBuffer,但我无法验证版本。在我的备份文件中,该文件说它已被swift 4.2中的CMSampleBuffer.imageBuffer取代,该文件不存在。它使用Mojave,Xcode 10 beta 3和ios12。