我目前正在一个使用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版本?
答案 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。