我目前正在开发一个在Swift中使用实时摄影机视图的项目。我使用在GitHub上找到的一些代码为我提供了实时摄像机视图,它在运行Mojave的MacBook Pro上非常有效。我的所有文件都存储在外部硬盘上,因此我进入了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版本?

最佳答案

您仍然可以使用此功能:
CMSampleBufferGetImageBuffer(_ sbuf: CMSampleBuffer)获取CVPixelBuffer?

直接替换为:

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

07-24 21:55